florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20083 7 nov. 2004 à 21:00
Non c'est beaucoup plus simple :
Dans ton Unit1 tu met Unit2 dans le uses de la partie interface
unit Unit1;
interface
uses
[...], Unit2;
Et dans ton Unit2, tu met Unit1 dans le uses de la partie implémentation car sinon tu crée une référence circulaire (c-a-d que deux unités se réferencent mutuellement)
unit Unit2;
[ ... ]
implementation
uses
Unit1; // Et voila !!
{$R *.dfm}
@ ++
Florent
Si tu ne te plantes pas ......
tu ne poussera jamais
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 6 nov. 2004 à 20:46
Slt Filipe !
La solution est de déclarer l'unit1 dans la partie 'uses' de l'unit2. Pour cela, positionne-toi dans l'unit2, et fais 'fichier' 'Utiliser l'unité...' et sélectionne l'unit1 : cela rajoute automatiquement l'unit1 dans le 'uses' de l'unit2.
Ensuite, tu pourras "agir à distance" comme tu le souhaites sur les composants de la form1 à partir de l'unit2 en faisant simplement par exemple :
Form1.Label1.Caption := 'texte';
:)
Bonne Prog'
Nico
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! :)
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 7 nov. 2004 à 22:18
Quand je parlais des 'uses', je parlais de ceux de la partie 'Implémentation' pas de la partie 'Interface' !
Il faut mettre les déclarations toutes dans la partie implémentation et il n'y aura aucun problème !
(pour moi cela semblait évident dans ma première réponse, alors dsl de ne pas m'être exprimé en entier... ?-) )
:)
Bonne Prog'
Nico
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient ! :)
procedure TForm1.goClick(Sender: TObject);
var
inta, intb :integer;
ptc :PInteger;
begin
ptc^:=5;
inta :=strToInt(a.text); //ici, a & b sont des TEDIT
intb :=strToInt(b.text);
somme.add(inta,intb,ptc);
//add(inta,intb,ptc); //non plus
somme.caption := intTostr(ptc^);
end;
############################
et dans l'unité somme :
implementation
uses forme;
procedure add(a,b :integer; ptc:PInteger);
begin
ptc^:=a+b;
end;
Message : "identificateur non déclaré"
là, je ne comprends pas, les liens sont cencés être là...
Si vous pouvez m'éclairer
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20083 1 déc. 2005 à 18:27
Il faur que tu séclares ta procédure Add() dans la partie interface de ton unité somme. Sinon ,elle n'est visible que par les méthodes situées en dessous d'elle dans la meme unité qu'elle.
cs_groben
Messages postés11Date d'inscriptionlundi 20 novembre 2000StatutMembreDernière intervention22 novembre 2005 2 déc. 2005 à 09:05
Je suis obligé de le mettre après uses (pour les Pinteger) mais ça ne fonctionne pas non plus... c'est peut être à cause de ma vieille version de Delphi (2.0)
Je n'ai pas le choix, je suis stagiaire dans une boite qui ne veut pas évoluer à ce niveau.
florenth
Messages postés1023Date d'inscriptiondimanche 1 août 2004StatutMembreDernière intervention17 août 20083 3 déc. 2005 à 12:38
Et oui, un an plus tard, il est toujours d'actualité. Ca prouve que "groben" s'est servi de la fonction "rechercher" du site qui est là pour ça. j'en connais d'autres qui devraient s'y mettre (pas toi filipe mais d'autres ;-)
++ Flo
PS : Au passage, desolé pour le double post
Si tu ne te plantes pas ......
tu ne poussera jamais