Réponse acceptée !
Si l'on regarde la définition de la classe d'une fiche, on s'aperçoit que la fiche est propriétaire des composants TMemo déposés sur les TTabSheet.
Mais je pense que ta question va au delà, sinon ce serait trop simple.
Voilà, je te propose le code suivant :
1/- Déclaration d'une méthode dans la section Private ou Public de ta fiche. C'est toi qui voit selon tes besoins en matière de portée.
procedure FillMemo(TabSheet: TTabSheet; const AText: string;const SetActive: boolean= True);
|
Développons cette méthode :
procedure TForm1.FillMemo(TabSheet: TTabSheet; const AText: string;const SetActive: boolean= True); var i: integer; begin for i:= 0 to ComponentCount - 1 do if Components[i] is TMemo then if TMemo(Components[i]).Parent = TabSheet then begin TMemo(Components[i]).Text := AText; if SetActive then TPageControl(TabSheet.Parent).ActivePage := TabSheet; end; end;
|
En gros, nous demandons de remplir un TMemo contenu dans le TTabSheet TabSheet avec le texte AText. En prime, nous pouvons demander que l'onglet TabSheet soit activé (facultatif).
Comme une fiche est propriétaire du TTabSheet et des TMemo créés dans sa surface de dessin, nous utilisons donc la propriété Parent du composant TMemo pour désigner le TTabSheet voulu.
Nous utilisons cette même technique pour retrouver le parent du composant TTabSheet et activer le bon onglet du bon composant TPageControl.
Exemple d'appel de cette méthode :
procedure TForm1.Button1Click(Sender: TObject); begin FillMemo(TabSheet2, 'Eurêka !'); end;
|
Si j'ai bien compris, chaque bouton ou chaque TEdit est déposé sur la surface d'un TTabSheet. Alors, ils ont le même parent que le composant TMemo. Pas de doute sur leur paternité !
La technique exposée ci-dessus reste entièrement valable et facilement transposable.
May Delphi be with you