Проблема FMXInno - Закругление формы (Решено)

Xenium

Новичок
8-)
code_language.pascal:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
OutputDir=.

[Code]
type
  HRGN = Longword;

function SetWindowRgn(bWnd: HWND; bRgn: HRGN; bRedraw: boolean): integer; external 'SetWindowRgn@User32.dll stdcall';
function CreateRoundRectRgn(x1, y1, x2, y2, w, h: integer): HRGN; external 'CreateRoundRectRgn@Gdi32.dll stdcall';


procedure InitializeWizard();
begin
  SetWindowRgn(WizardForm.Handle, CreateRoundRectRgn(5, 5, WizardForm.Width, WizardForm.Height, 30, 30), true);
end;
Так я об этом написал же)
А дальше форму натяни FMX... но окно будет неактивное.
 

Xenium

Новичок
@audiofeel, @BLACKFIRE69 , Доброго)

1)Столкнулся с проблемой, что форма картинкой не совсем подходит в моем случае - если на нее накладываю еще картину - форма автоматом квадратная становится(по размеру новой картинки поверх старой).

2)Если делать через SetWindowRgn, то тут 2 ситуации:
  • a) Форма круглая,фоновая картинка и все следующие ложатся исправно, но сама форма становится неподвижной. (Это если делать чисто через InstallerForm.FCreateNormal(WizardForm.Handle)
  • b) Форма становится "подвижной", а именно основная форма WizardForm остается неизменной (но закругленной), далее слой FMX же оказывается "внутри" формы WizardForm и двигается в рамках нее только (сама картинка квадратная но ограничена округлой формой) - Данный случай справедлив для всех InstallerForm.FCreate*** кроме InstallerForm.FCreateNormal.

Может есть мысли на это счет?
Как заставить форму двигаться в случае "a)" - InstallerForm.FCreateNormal(WizardForm.Handle) ?
 

audiofeel

Старожил
code_language.pascal:
procedure AddMousedownControls(FControl : TFmxObject);
нацепите на что ни будь и таскайте за нее, в примере ни же за лейбл.
FMXForm.AddMousedownControls(TitleLbl.Handle);
 

audiofeel

Старожил
Можно еще так без SetWindowRgn. Радиус получается более сглаженный
76.png
 

Вложения

  • 3.5 MB Просмотры: 29
Сверху