Evenement Onclick sur des boutons créer dynamiquement

Evenement Onclick sur des boutons créer dynamiquement - Delphi/Pascal - Programmation

Marsh Posté le 11-10-2008 à 09:52:17    

Bonjour à tous...Voilà mon probleme : Sur une form, je crée des TButton dynamiquement, ainsi que des TPanel en invisible. J'ai mis l'évènement 'Onclick' sur chaque boutton, le problème est comment faire pour que le TButton soit reconnu ? Plus précisement, je voudrais faire que si l'on clique sur le premier TButton (créer dynamiquement), le TPanel correspondant (même tag, même caption) devient visible. Jusqu'a présent, je peux cliquer sur n'importe quel bouton, c'est le dernier créer qui prend le focus ! Je met le bout de mon code :
 

Code :
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3. boutton := TButton.Create(form1);   'Creation du boutton
  4. with boutton do begin
  5.    parent := form1;
  6.    top := 110;
  7.    left := 72+(75*x);
  8.    tag := x;
  9.    caption := 'Page '+inttostr(x);
  10.    end;
  11. panel := TPanel.Create(form1);   'creation du panel
  12. with panel do begin
  13.    parent := form1;
  14.    top := 150;
  15.    left := 72;
  16.    tag := x;
  17.    caption := 'page '+inttostr(x);
  18.    panel.Visible := false;
  19.    end;
  20.    boutton.OnClick := bouttonclick;  'Evenement onclick du bouton créer
  21. x:=x+1;
  22. end;
  23. procedure TForm1.bouttonclick(Sender: TObject);  'Procedure du Onclick
  24. var
  25. fiche : string;
  26. begin
  27. fiche := TButton(self).Caption;  ' caption du bouton dans variable Fiche
  28. label1.Caption := 'C''est le boutton '+boutton.Caption;
  29. panel.Visible := true;
  30. end;


 
Merci de votre réponse...

Reply

Marsh Posté le 11-10-2008 à 09:52:17   

Reply

Marsh Posté le 12-10-2008 à 14:56:53    

Salut ,  
 
Tu as essayé dans ce genre la :  
 
  label1.Caption := 'C''est le boutton '+inttostr(TButton(Sender).Tag);
 


---------------

Reply

Marsh Posté le 11-12-2008 à 21:45:52    

j'ai fait ça avec un popupmenu crée dynamiquement ,a peutpre la méme chose
 
procedure TForm1.PopupMenuItemsClick(Sender:TObject);
var n:integer;
begin
with Sender as TMenuItem do
     begin
     n:=Tag;
     listbox1.ItemIndex:=n;
     showmessage('Vous avez cliquer sur '+listbox1.Items.Strings[n]);
     end;
end;
procedure TForm1.PopupMenuPopup(Sender: TObject);
var index:Integer;
    NewItem:TMenuItem;
begin
PopupMenu.Items.Clear;
for index :=0 to ListBox1.Count-1 do
    begin
    NewItem :=TMenuItem.Create(PopupMenu);//crée le nouvel élément
    PopupMenu.Items.Add(NewItem);//lui ajoute le Popupmenu
    NewItem.Caption :=ListBox1.Items.Strings[Index];
    NewItem.Tag :=index;
    NewItem.OnClick:=PopupMenuItemsClick;//lui assigne un gestionnaire  
    //d'evenement
    end;
end;

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed