Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1484 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  valeur de fonction de retour

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

valeur de fonction de retour

n°303621
okeefe
Posté le 07-02-2003 à 05:27:15  profilanswer
 

dans une fonction en delphi,  
 
je veux retourner une liste...
 
 
genre on peut pas envoyer ce qu'on veut et ensuite détruite l'objet?
 
sinon je vais être obliger de mettre la liste global :(
 
function():TStringList;
var
  MyList: TStringList;
begin
  MyList := TStringList.Create;
  ...
  ...
  result:=MyList;
  MyList.Free;
end;

mood
Publicité
Posté le 07-02-2003 à 05:27:15  profilanswer
 

n°303639
taureau
Posté le 07-02-2003 à 08:44:11  profilanswer
 

ben là c normal que cela ne fonctionne pas, si tu détruit ta liste avant de la retourner...
 
alors au choix tu peux faire
 
procedure FaireJouJouAvecMaListe(MaListe:TStringList);
begin
 if MaListe=nil then exit; // on sait jamais :d
 MaListe.add('bonjour';);
end;
 
ou alors si tu veux une fonction
 
function FaireJouJouAvecMaListe:TStringList;
begin
 result := TStringList.create;
 result.add('bonjour';);
end;
 
avec cette solution il ne faudra pas oublier de libérer ta liste ...

n°303667
[SDF]Poire
Vive Grumly
Posté le 07-02-2003 à 09:48:26  profilanswer
 

result.Assign(MyList);
 
C un super moyen pour faire des memory leak, le mieux est de passer ta liste par référence comme paramètre de ta fonction


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°312227
Moustaaki
.: ILITCH :. ésprit sibérie
Posté le 18-02-2003 à 17:35:23  profilanswer
 

je susi d'accord avec Poire : "le mieux est de passer ta liste par référence "
 
cependant, rajoutes le mot clé var, pour indiquer que la liste va être modifiée dans ta fonction. C'est pas indispensable mais c'est bp plus propre et lisible :) (une objection ?)
 
 
 
procedure FaireJouJouAvecMaListe(var MaListe:TStringList);  
begin  
if MaListe=nil then exit; // on sait jamais :d  
MaListe.add('bonjour';);  
end;  

n°312232
antp
Super Administrateur
Champion des excuses bidons
Posté le 18-02-2003 à 17:38:51  profilanswer
 

non c'est vrai c'est plus propre ;)
de la même manière, mettre const pour les trucs qui ne seront pas modifiés, surtout pour les string et les record, où ça améliore les perfs (passage de l'adresse au lieu de tout recopier)


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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  valeur de fonction de retour

 

Sujets relatifs
Griser un/des champs en fonction d'une liste de choix.fonction mail() et FAI
colorer la plus petite valeur d'une colonnepointeur fonction membre
[MYSQL] La fonction UNIONquestion : recuperer une valeur à l'ecran ?
[c] g un doute sur la fonction pow... (resolu)[C] fonction quicksort
faire prendre une valeur a une variable dans une requete SQL[Access] bizarrerie sur fonction Format
Plus de sujets relatifs à : valeur de fonction de retour


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR