retaks666
Messages postés286Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 juillet 2007
-
26 janv. 2005 à 21:16
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 2006
-
8 févr. 2005 à 19:44
Bonjour, je suis débutant en delphi, et je voulais savoir si'il était
possible, comme en visual basic, de créer un groupe de composant, c'est
a dire un tableau de bouton par exemple, et que dans les procédures
associées aux événemments de ce composant, on ait l'index.
J'ai essayé la méthode suivante mais ça ne marche pas :'(
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 200622 26 janv. 2005 à 22:34
var MyBut : array[0..(*Un trou*)] of TButton ;
implementation
var UnNombre : integer;
procedure OnClickEvent(Sender:TObject, indx:smallint);
//Sender est normalement uniquement autorisé. Je n'ai jamais essayé, mais indx devrait être interdit. Déclare plutôt une variable sous le mot implementation, et gère-là ensuite begin
showmessage('index: ' + Intostr(smallint));
//Non sens end;
procedure TForm1.OnCreate(Sender:TObject);
var i : integer;
begin
for i := 0 to length(mybut) do
//Là, tu te fous de ma gueule
begin
MyBut[i]: =TButton.Create;
//MyBut n'a aucune propriété
MyBut[i].Name:= 'but'+IntToStr(i);
MyBut[i].Parent:=Form1;
MyBut[i].Caption...
MyBut[i].OnClick:= OnClickEvent (i) //pas de paramètres. On assigne un PROCEDURE OF OBJECT.</gras>
end;
end;
procedure TForm1.OnClose(...);
//manque une déclaration
var i : integer;
begin
for i : = 0 to length(mybut)//idem</gras>
begin
MyBut[i].Free;
end;
//les alignements: 0/20
end.
retaks666
Messages postés286Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 juillet 2007 26 janv. 2005 à 21:49
désolé pour le smiley, j'avais pas vu qu'il était animé, je voulais
juste mettre le petit bonhome rouge :s, mais si je cré dynamiquement
des boutons, comment intercepter leur évenements ? Est-ce au moins
possible
Vous n’avez pas trouvé la réponse que vous recherchez ?
retaks666
Messages postés286Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 juillet 2007 26 janv. 2005 à 23:01
Merci de ta réponse.
Si, j'avais delphi, mais il fallait que je reboot mon pc pour l'utiliser, et je ne pouvais pas car j'avais une tâches importante en cours, mais peu importe, j'ai corrigé "mon" code, mais par contre les boutons ne s'affichent pas: voici ce que j'ai:
unit Unit1;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var i : integer;
begin
for i : = 0 to length(mybut)-1 do
begin
myBut[i].Free;
end;
end;
end.
retaks666
Messages postés286Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 juillet 2007 26 janv. 2005 à 23:25
ça n'est pas grave, surtout que chez moi ça ne marche pas. au fait, le
problème ne venait pas de private, car ça ne marchais pas, mais j'ai
tout simplement mis la suite des propriétés dans l'évenements activate
comme ceci ça fonctionne bien:
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 200622 8 févr. 2005 à 19:44
Gérer tout çà dans OnActivate est ridicule. C'est à dire que tu veux modifier les propriétés d'un composant à chaque fois que la fenêtre s'active ? Pff... Faudra alors m'expliquer le rôle de OnCreate.
Delphi est similaire à VisualBasic. Ca devrait pas être trop dur à faire les correspondances... ??
But:TButton.Create( Form1 ); Validez les réponses si ok...