Procédure

mathieu57100 Messages postés 103 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 9 février 2006 - 3 févr. 2005 à 14:18
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 - 4 févr. 2005 à 12:43
bonjour,


je débute avec delphi et y il a un truc pas très clair pour moi...


j'aimerai utiliser une procédure plusieur fois depuis 2 fiches différentes, mais je ne sais pas où déclarer cette procédure et où la placer.
merci pour vos réponses.

8 réponses

jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
3 févr. 2005 à 16:37
Hello,





Alors imaginons tu es deux unités appelez respectivement Unit1 et Unit2 avec dans chaque unit une form Form1 et Form2.





Dans Unit2(form2) tu declares dans public ta procedure :


public { Déclarations publiques }


procedure MaProcedureAMoi;

ensuite sous implementation tu declares ton code comme ceci :


procedure TForm2.MaProcedureAMoi;


begin


Showmessage('MaProcedureAMoi');


end;




Puis dans Unit1 pour pouvoir lancer la procedure tu fais :


Dans les uses tu ajoutes Unit2


Uses Unit2;


Puis Unit1 quand tu as besoin de ta procedure de l'unit2 tu fais :


Procedure TForm1.OnCreate(Sender : TObject);


begin


Form2.MaProcedureAMoi;


end;





Voila j espere que j'ai été suffisament clair sinon demande moi ce que tu ne comprends pas.





Bonne prog,

JMP77.



N'oubliez pas de cliquer sur réponse acceptée.
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
3 févr. 2005 à 20:54
Pour éviter les référencements croisés qui finissent toujours par amener des problèmes, le mieux est de mettre les procédures, variables et constantes communes dans une unité spécialisée (généralement appelée Common.pas).
Pour cela, faire Fichier/Nouveau/Unité et y placer le code.
Maintenant, imaginons plusieurs autres fiches ayant besoin d'appeler cette même procédure. Pourquoi seraient-elles obligées de référencer l'unité contenant TForm2, au risque de modifier des propriétés au passage, alors que ce n'est absolument pas nécessaire ?

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.croix-rouge.fr/index/partner_campagne.html
0
mathieu57100 Messages postés 103 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 9 février 2006
4 févr. 2005 à 10:28
si je crée une nouvelle untité, voici le code généré par delphi à l'interieur de cette dernière:

unit uCommun;


interface


implementation



end.

or, si je crée une procédure pour tester avec un showmessage, j'ai un message d'erreur qui me dit "directive inconnue: 'showmessafe'
que puis-je faire pour corriger cela?
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
4 févr. 2005 à 10:34
Hello,



En dessous de interface tu rajoutes ceci :

Uses Dialogs;

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mathieu57100 Messages postés 103 Date d'inscription jeudi 24 juin 2004 Statut Membre Dernière intervention 9 février 2006
4 févr. 2005 à 11:05
toujours pareil...

unit uCommun;
interface
Uses Dialogs;
implementation
procedure test ;
showmessage('test');
end;
end.
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
4 févr. 2005 à 11:33
Petit oubli je pense ca marchera mieux comme cela :



unit uCommun;
interface
Uses Dialogs;
implementation
procedure test ;

begin
showmessage('test');
end;
end.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
4 févr. 2005 à 12:11
Non, JMP77, la procédure test n'étant pas déclarée dans la partie Interface, elle n'est pas visible de l'extérieur par conséquent, il faut ajouter la déclaration dans la partie interface :
unit uCommun;

interface

Uses Dialogs;

procedure Test;

implementation

procedure test ;
begin
showmessage('test');
end;
end.

Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.croix-rouge.fr/index/partner_campagne.html
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
4 févr. 2005 à 12:43
Oui tout a fait daccord pour qu'elle apparaisse à l'exterieur. Mais ce
n'est pas le manque de déclaration qui provoquait son message d'erreur.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0