FMX ne semble pas connaitre ces termes .
Après maints essais et recherches google , j'ai plus ou moins réussi une pseudo frame selon la méthode indiquée dans le wiki
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 type TForm15 = class(TForm) Button1: TButton; Button2: TButton; Lang1: TLang; Layout1: TLayout; procedure AjouterClick(Sender: TObject); procedure EffacerClick(Sender: TObject); private { Déclarations privées } procedure EmbeddForm(AParent:TControl; AForm:TCustomForm); public { Déclarations publiques } end; var Form15: TForm15; implementation {$R *.fmx} uses Unit16; procedure TForm15.AjouterClick(Sender: TObject); begin EmbeddForm(Layout1, TForm16.Create(self)); // afficher la 'fausse frame' end; // équivaut a la frame procedure TForm15.EmbeddForm(AParent:TControl; AForm:TCustomForm); begin while AForm.ChildrenCount>0 do AForm.Children[0].Parent:=AParent; end; procedure TForm15.EffacerClick(Sender: TObject); begin Layout1.DeleteChildren; // efface bien les enfants // cependant les contrôles apparaissent toujours end;
si la méthode fonctionne pour l'ajout des composants , par contre impossible de l'effacer . Dans mon test , la TForm16 contient un label et un bouton . Après la procedure effacerClick le bouton et le label sont toujours visible , cependant le bouton ne fonctionne plus .
j'ai essayé plusieurs choses pour effacer :
- Encadré le deletechildren avec un BeginUpdate et EndUpdate
- Ajouté un repaint etc...
Rien n'y fait
n'y aurait t-il aucun moyen d'avoir du docking avec FMX ?! c'est bien beau des applications 'mono forme' mais pour une bonne grosse application c'est un peu léger . FMX me semble bien jeune
Partager