Pokračování ohledně FireMonkey HD.
Vytvoříme dva nové formuláře. Na druhý vložíme následující komponenty.
Vložíme na formulář TArcDial, TClearingEdit, TCallOutPanel a TProgressBar.
U CallOutPanel nastavíme CalloutPosition = cpLeft (zobáček doleva) a nastavíme RotationAngle = -30 (otočíme do požadované polohy). Vrazíme na něho Label a nastavíme mu Text "Otočte kolečkem". Každý prvek UI jde libovolně rotovat a měnit mu měřítko - zvětšovat/zmenšovat (díky vektorové podstatě).
Nyní
procedure TForm5.ArcDial1Change(Sender: TObject);
begin
ProgressBar1.Value := ArcDial1.Value;
ClearingEdit1.Text := FloatToStr(ProgressBar1.Value);
end;
Vrátíme se na první formuláře a dáme tam panel a vygenerujeme OnCreate
procedure EmbeddForm(AParent:TControl; AForm:TCustomForm);
begin
while AForm.ChildrenCount>0 do
AForm.Children[0].Parent:=AParent;
end;
procedure TForm4.FormCreate(Sender: TObject);
begin
EmbeddForm(Panel1, TForm5.Create(Self));
end;
Za běhu máme vložený druhý formulář (FMX zatím nepodporuje TFrame):
Nezapomeňte, že můžete ovlivnit chování aplikace za pomoci několika globálních proměnných - viz. minule.
Takže na zakázání efektu focusu (a zakázání Direct2D) nastavte v DPR (uses FMX.Types)
GlobalDisableFocusEffect := True;
GlobalUseDirect2D := False;
Pokud aplikaci ladíte, je při použití Direct2D pomalejší start programu. Zároveň DEBUG verze je celkem velká, RELEASE je pak kolem 3MB.
FireMonkey a VCL
EMBT primárně chce, aby bylo FireMonkey používáno samostatně - ale je jasné, že rozumná varianta je využít některých výhod FMX a použít je ve VCL aplikaci. Jenže vkládání FMX formulářů do VCL je v IDE zakázáno, takže jsem si spustil druhou instanci IDE a vytvořil jsem patřičný FMX projekt a formulář jsem uložil do stejného adresáře jako VCL. Pak se to dá přidat do projektu (akceptujte varování). A už jsem jen z VCL formuláře zavolal modálně FMX formulář.
FMX má jinou pumpu zpráv než VCL aplikace, ale pokud je formulář modálně tak to nevadí.
Původní VGScene měla možnost embednout VGScene formulář do VCL formuláře. To není oficiálně podporováno, ale FMXAdapter to umí i pro FMX.
FireMonkey komponenty
code.google.com/p/delphichromiumembedded/source/list nyní podporuje FireMonkey.
Součástí instalace Delphi je i TChart ve verzi FireMonkey.