[delphi]Retour de fonction - Type incompatible

Retour de fonction - Type incompatible [delphi] - Delphi/Pascal - Programmation

Marsh Posté le 31-03-2005 à 15:18:05    

bonjour,
 
sous delphi 7,
j'ai créé une classe TClient
ds 2 autres classe(A et B) j'ai ajouté les déclarations

Code :
  1. type
  2. PClient = ^TClient;
  3. TlisteClient = array of PClient;
  4.   private
  5.     listeClient : TlisteClient;


 
ds A j'ai la fonction :

Code :
  1. function TdmMain.getListeClient(): TlisteClient;
  2. begin
  3.   result := listeClient;
  4. end;


 
et ds B j'appelle cette fonction :

Code :
  1. listeClient := DmMain.getListeClient();


 
et j'ai l'erreur sur cette dernière ligne : type incompatible !
voila si quelqun peut m'aider, là je desespère...


Message édité par flam182 le 31-03-2005 à 15:18:58
Reply

Marsh Posté le 31-03-2005 à 15:18:05   

Reply

Marsh Posté le 31-03-2005 à 16:46:58    

bon j'ai déplacé les déclarations suivantes des classes A et B, ds la classe TClient

Code :
  1. PClient = TClient;
  2.   TlisteClient = array of PClient;


ca compile, mais ca plante lors de l'exécution sur la création d'un client (ca dois boucler dessus)
je vois donc pas comment m'en sortir... :(


Message édité par flam182 le 31-03-2005 à 16:47:28
Reply

Marsh Posté le 31-03-2005 à 17:50:57    

"ça plante" = ?
 
C'est quoi cette liste de pointeurs de TClient ? C'est un peu bizarre ton truc...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 01-04-2005 à 08:40:12    

je débute,
mais ds ce cours http://fbeaulieu.developpez.com/guide/, ds la section pointeurs
c ce qu'il conseil...
 
J'ai qd même viré les pointeurs, et ca ne marche tjrs pas
lorsque je suis en mode pas a pas, le programmme bloque sur le premier objet client créé :

Code :
  1. listeClient[i].Create

 
 
Ma classe client

Code :
  1. unit client;
  2. interface
  3. type
  4.   TClient = class
  5.   public
  6.       idClient : Integer;
  7.       nomClient : String[20];
  8.       abvClient : String[11];
  9.       aftermarket : boolean;
  10.       stock : boolean;
  11.   end;
  12.   PClient = TClient;
  13.   TlisteClient = array of PClient;
  14. implementation
  15. end.


 
 
 

Reply

Marsh Posté le 01-04-2005 à 09:24:13    

rah g trop fais le boulet, il fallait écrire :
  listeClient[i]:= TClient.Create;
 
ca fonctionne...

Reply

Marsh Posté le 01-04-2005 à 09:46:11    

L'utilisation de pointeurs ici est inutile, vu que les objets sont déjà des pointeurs vers des instances de classes. On pourrait donc avoir un array of TClient directement.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 01-04-2005 à 09:50:19    

ok merci antp

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed