Bonjour à tous,
Je tourne en rond sur un problème.
J'ai une procédure qui affiche des Forms dans dans des TControl (principalement des Layouts et TabControl).
Jusque là aucun souci. Mes forms sont bien créés dans mes controls.
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 procedure TFMain.FormCreate(Sender: TObject); begin EmbeddForm(pagesControl, TFPageAccueil.Create(Self), 0); EmbeddForm(pagesControl, TFPageAuto.Create(Self), 1); EmbeddForm(pagesControl, TFPageMenuProfil.Create(Owner), 2); EmbeddForm(pagesControl, TFPageManuel.Create(Self), 3); EmbeddForm(pagesControl, TFPageMaintenance.Create(Self), 4); end; procedure TFMain.EmbeddForm(AParent:TControl; AForm:TCustomForm; Index: Integer); begin if (AParent is TTabControl) then begin while AForm.ChildrenCount>0 do AForm.Children[0].Parent:= TTabControl(AParent).Tabs[index]; end else begin while AForm.ChildrenCount>0 do AForm.Children[0].Parent:= AParent; end; end;
Le truc, c'est que mes Forms sont inaccessibles entre eux. Pour faire simple, je peux pas accéder aux composants d'un Form B depuis un Form A sans être en violation d’adresse.
En revanche, si je procède de façon classique en laissant l'appli créer automatiquement mes forms et en utilisant form.Show, aucun problèmes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure TFPageProfil.btnRetourClick(Sender: TObject); begin FormB.Bouton1.Visible := FALSE; // Ceci ne fonctionne pas end;
Je pense que ma façon de créer mes forms les rendrent en instance inaccessible.
Avez-vous des idées?
PS: Appli FireMonkey.
Merci d'avance pour votre aide.
Partager