cs_dk
Messages postés20Date d'inscriptionmardi 16 décembre 2003StatutMembreDernière intervention19 mai 2006
-
2 janv. 2004 à 21:50
cs_dk
Messages postés20Date d'inscriptionmardi 16 décembre 2003StatutMembreDernière intervention19 mai 2006
-
4 janv. 2004 à 23:57
voila je sais que parfois on peut fortement simplifier son code grace par exemple a la propriete (sender as T...)
mais par exemple si g ,lors d'un clik sur un button, bcp d'element a desactiver, par exemple 9 radiobutton numeroté de 1->9. Au lieu de mettre:
yvemoreau
Messages postés308Date d'inscriptionmardi 11 juin 2002StatutMembreDernière intervention26 septembre 2008 3 janv. 2004 à 03:20
avec des "buttons"
var x:Integer;
begin
for x:=0 to ComponentCount-1 do//test tout
begin
if(Components[x].ClassType=TButton)then Sender:=Components[x];
(Sender as TButton).Enabled:=false;
(Sender as TButton).Visible:=false;
(Sender as TButton).Left:=5;
end;
end;
ou si on connait le nom et que l'on souhaite plus de précision
if(Components[x].Name='bouton1')or
(Components[x].Name='bouton2')or ....
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 3 janv. 2004 à 09:16
Attention à l'utilisation détournée du paramètre Sender !...
Autre formule proposée, non basée sur des comparaisons de chaines, ce qui accélère un peu le traitement :
var
i: integer;
RB: TComponent;
begin
for i:= 1 to 9 do
begin
RB := FindComponent('RadioButton' + IntToStr(i));
if RB <> nil then
TRadioButton(RB).Enabled := False;
end;
end;
mais quand j'essaye de creer une prodedure de ce genre, lors de la compilation il me dit que radiobutton1 n'est pas un identifiant valable, pareille pour tous les radiobuttons utilise ceci du au fait qu'ils sont po declarer....
alors comment dois je arranger les bidons???
et tant que j'y suis j'aimerais creer le meme genre de procedure mais ou on passerait la valeur true ou false pour avoir un resultat de ce style
buttonagelol(true);
//qui a pour effet
radiobutton1.enbled:=true;
...
radiobutton10.enbled:=true;