Création dynamique de composants sur une autre fiche

Pegase20 Messages postés 5 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 26 mai 2003 - 23 mai 2003 à 09:01
Pegase20 Messages postés 5 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 26 mai 2003 - 26 mai 2003 à 15:29
:shy) bonjour,
Je programme sous Delphi 5.0
voila mon probleme :
j'ai deux formes différentes, une contenant un tabbebnotebook et une ayant un bouton (plus d'autre sans importance). Ce que je veux faire c'est quand je clique sur le bouton ca me cree une nouvelle page (ca j'arrive à le faire : Form1.TabbedNotebook1.Pages.Insert(Form1.TabbedNotebook1.Pages.Count,'Résultat '+ IntToStr(Form1.TabbedNotebook1.Pages.Count -3));) mon probleme c'est que je veux rajouter dynamiquement sur cette nouvelle page des composant (ou control) mais je n'y arrive pas.

si quelqu'un peut m'aider...
merci d'avance :)

2 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
23 mai 2003 à 23:59
Voici la réponse avec un peu d'adaptation par rapport à celle que j'ai donné récemment. Le but est d'ajouter deux onglets supplémentaires, à chaque clic sur un bouton, sur un contrôle TTabbedNoteBook lui même situé sur une autre fiche (Form1, contenue dans Unit1).

uses
  Unit1, TabNotBk;

{$R *.dfm}
procedure AddTabPage(TabbedNoteBook: TTabbedNoteBook);
var
  i: integer;
  RichEdit : TRichEdit;
  TabPage : TTabPage; //Non documenté dans l'aide de Delphi
begin
{ Création de deux onglets supplémentaires sur le
  composant TTabNoteBook}

  for i := 0 to 1 do
    with TabbedNoteBook do
    begin
      //La page créée devient la page courante
      PageIndex := Pages.Add('Page ' + IntToStr(Pages.Count + 1));

      {La classe TTabPageAccess étant déclarée dans
       la partie implémentation de l'unité TabNotBk.pas,
       nous ne pouvons y accéder directement. En réalité,
       la propriété Pages du composant TTabNoteBook est une
       TStrings qui stocke une référence dans la propriété
       Objects de chaque ligne. Il suffit de transtype cette
       dernière en TTabPage et nous obtenons la référence sur le
       Parent du RichEdit que nous créons juste après.}
      TabPage := TTabPage(Pages.Objects[PageIndex]);

      {Attention : la fiche reste propriétaire du contrôle RichEdit.
      Si vous observez la vue arborescente des objets
      (dans le menu voir), vous remarquerez que le composant
       TTabNoteBook ne possède aucun des composants que l'on dépose
       sur sa surface.}
      RichEdit := TRichEdit.Create(TabbedNoteBook.Owner);

      {Maintenant, y'a plus qu'à...}
      RichEdit.Parent := TabPage;
      RichEdit.Align := alClient;
    end;
end;

procedure TForm3.btnAddTTabPageClick(Sender: TObject);
begin
  AddTabPage(Form1.TabbedNotebook1);
end;

Voilà, je pense que ça répond parfaitement à ta question.
May Delphi be with you
0
Pegase20 Messages postés 5 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 26 mai 2003
26 mai 2003 à 15:29
ca marche!!!! :big)
merci!
:shy)
0
Rejoignez-nous