Détruire un de mes boutons créés dynamiquement

cs_juliop Messages postés 13 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 2 juillet 2003 - 1 juil. 2003 à 16:12
cs_juliop Messages postés 13 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 2 juillet 2003 - 1 juil. 2003 à 18:34
hello !

j'ai créé n boutons via ce code :

procedure TFormMain.Creer(Sender: TObject);
var
NewCtrl: TspSkinSpeedButton;
NewName: String;
i: integer;
begin
for i:=0 to ListBoxName.Count-1 do
begin
NewCtrl := TspSkinSpeedButton.Create (self);
NewCtrl.Visible := False;
NewCtrl.Parent := self;
NewCtrl.Left := 0+(99*i);
NewCtrl.Top := 0;
Inc (Counter);
NewName := 'dnSpeedButton' + IntToStr (Counter);
NewCtrl.Name := NewName;
NewCtrl.Height := 65;
NewCtrl.Width := 100;
NewCtrl.Layout := blGlyphTop;
NewCtrl.NumGlyhps := 1;
NewCtrl.Caption := ListBoxName.Items[i];
NewCtrl.Glyph.LoadFromFile(ListBoxBmp.Items[i]);
NewCtrl.Visible := True;
NewCtrl.OnClick := MySpeedClick;
NewCtrl.PopupMenu := PopupMenu1;
NewCtrl.OnMouseDown := SpeedButtonTestMouseDown;
NewCtrl.Tag := Counter;
end;
end;

J'arrive a TOUT detruire mais ce ke je veux c (via un popupmenu) detruire UN SEUL bouton, voila comment j'ai essayé :
TheName: string; est declarée plus haut
Mon OnMouseDown :
TheName := TspSkinSpeedButton(Sender).Name;

si on clic sur "retirer" ds le popupmenu:
TspSkinSpeedButton(TheName).Destroy;
ou meme
TspSkinSpeedButton(TheName).Free;

le nom de mes boutons créés étant du type "dnSpeedButton1" j'ai essayé de mettre en dur ce nom mais comme ils ne sont pas créés sur la form, marche pas non plus.

comment puis je proceder ?
merci a vous :)

1 réponse

cs_juliop Messages postés 13 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 2 juillet 2003
1 juil. 2003 à 18:34
g utilisé un array of TSpeedButton et ça marche pour deleter :)
suffit de faire
NewCtrl[i].free;
0
Rejoignez-nous