Création de TabSheet et ensuite ... ?

Résolu
Benitora Messages postés 9 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 16 septembre 2004 - 15 nov. 2003 à 15:30
Benitora Messages postés 9 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 16 septembre 2004 - 16 nov. 2003 à 00:19
voilà, j'ai crée des procédures pour ouvrir ou fermé un TTabSheet avec à l'intérieur un TMemo, un TEdit et un TButton, je voudrais savoir comment faire pour ajouté des lignes auTMemo contenu dans un TTabSheet précis.

3 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
15 nov. 2003 à 23:28
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
3
Benitora Messages postés 9 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 16 septembre 2004
15 nov. 2003 à 16:04
merci d'avance.
0
Benitora Messages postés 9 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 16 septembre 2004
16 nov. 2003 à 00:19
eh bien je n'est qu'une seule chose a dire, merci beaucoups !
0
Rejoignez-nous