hello,
je voudrais passer en parametre d'une procédure une variable de type MaskEdit.
qq'un peut-il m'aider ...
Merci d'avance
Loci
hello,
je voudrais passer en parametre d'une procédure une variable de type MaskEdit.
qq'un peut-il m'aider ...
Merci d'avance
Loci
Salut
C'est un objet comme un autre, n'oublie cependant pas qu'il sera transmis comme une référence (comme un paramètre var implicite).
cdlt
e-ric
![]()
M E N S . A G I T A T . M O L E M
Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal
"La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."
Merci e-ric
mais j'ai encore une question.![]()
je n'arrive pas à récupérer les propriétés du MaskEdit , une fois passé en param dans ma procédure.
Je sais pas si tu vois ce que je veux dire.
Je voudrais faire un .Text dans ma proc pour mon MaskEdit passé en param.
loci
Je ne vois pas le problème si tu passes le TMaskEdit en paramètre, mais la condition pour pouvoir accéder directement aux propriétés est que le paramètre formel de ta procédure soit TMaskEdit, sinon tu seras limité par le polymorphisme.
Mais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure toto(me: TMaskEdit); begin // No problem end;
le passage par référence, systématique pour les objets en Delphi, fait que l'objet paramètre effectif (l'objet passé en paramètre à l'appel) est bien celui qui est manipulé et non pas une copie de celui-ci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 procedure toto(ctrl: TControl); begin // les propriétés spécifiques de TMaskEdit // ne sont pas accessibles sauf avec un cast: TMaskEdit(ctrl).Text := 'Hi man!'; end; // ou un peu plus propre procedure toto_bis(ctrl: TControl); begin // les propriétés spécifiques de TMaskEdit // ne sont pas accessibles sauf avec un cast: if Ctrl is TMaskEdit then (Ctrl as TMaskEdit).Text := 'Hi man!'; end;
cdlt
e-ric
![]()
M E N S . A G I T A T . M O L E M
Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal
"La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."
merci bcp e-ric
pb résolu !
en faite ma procédure était dans une Unité à part... donc je l'ai mise dans l'unité de la form (où il y a mes MaskEdit).
Et donc le code que tu m'as filé fonctionne !
alors c'est bon... loci contente![]()
merci pour ton aide
Partager