lolocbr19
Messages postés2Date d'inscriptionjeudi 15 décembre 2005StatutMembreDernière intervention10 janvier 2007
-
10 janv. 2007 à 00:11
sp40
Messages postés1276Date d'inscriptionmardi 28 octobre 2003StatutContributeurDernière intervention 3 juillet 2015
-
11 janv. 2007 à 09:14
Bonjour,
je voudrais savoir comment récupérer l'objet (ici un tlabel ou un statictext).
il me faut en fait récupérer le caption du label sur lequel l'utilisateur va cliquer.
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 10 janv. 2007 à 00:22
Salut,
Tu doubleClick sur un TStaticText de ta fiche et tu complètes comme suit :
procedure TfrmMain.StaticText1Click(Sender: TObject);
begin If Sender Is TStaticText Then ShowMessage((Sender as TStaticText).Caption);
If Sender Is TLabel Then ShowMessage((Sender as TLabel).Caption);
end;
Ensuite tu lies tous les évènements OnClick des TLabel et TStaticText (par l'intermédiaire de l'inspecteur d'objets) a cette procedure et c'est tout
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20082 10 janv. 2007 à 14:47
Tu peux très bien avoir plusieurs composants pointant vers la même procédure pour leur Onclick par exemple.
Si tu as des Labels et des TStaticText, Delphi fonctionnera normalement car ils possèdent tous deux une proprété "Caption" mais gare à toi lors de développements plus complexes ...
Le mot clé "as" permet à Delphi de faire une vérification avant. Et déclanche des exception si ton transtypage n'est pas correct.
TMonType(xxx) devrait se limiter aux types simples.
Utilise (xxx as TMyClass) dès que cela parle d'objets. Et ne dit pas que ça prend plus de temps procésseur (ce qui est cependant vrai), il ne s'agit que de moins de 5 picoseconde (vérifié expérimentalement sur mon ordi).
Enfin... je dis ça... je dis rien en fait. C'est vous qui verrez la différence
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20082 10 janv. 2007 à 18:05
@ lolo: pourrait-tu valider la bonne réponse alors ? Merci d'avance.
@Simon: en fait, c'est 5 nanosecondes et non pas pico. Ce qui fait quand même 1000 fois plus !!!! Mais ça reste largement négligeable. En tout cas, c'est vraiment la dernière chose à laquelle je m'intéresserais si je devais optimiser au maximum mon code.
De toutes façons, la POO sera toujours plus lente que la programmation procédurale alors pourqui s'embetter avec de telles futilités ? On ferait mieux de coder au lieu de ... Ben tiens, c'est justement ce que je vais faire !