Procédure

Signaler
Messages postés
103
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
9 février 2006
-
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
-
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

Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
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.
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
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
Messages postés
103
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
9 février 2006

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?
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
Hello,



En dessous de interface tu rajoutes ceci :

Uses Dialogs;

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Messages postés
103
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
9 février 2006

toujours pareil...

unit uCommun;
interface
Uses Dialogs;
implementation
procedure test ;
showmessage('test');
end;
end.
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
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.
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
31
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
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
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.