CLio908
Messages postés15Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention21 novembre 2010
-
16 sept. 2010 à 23:05
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 2022
-
18 sept. 2010 à 12:30
Bonjour
Après avoir cherché un bon moment sur le site je me décide à poser ma question
Je veux créer un Tmemo dynamiquement dans une fonction qui se trouve sur une unitée a part.
la fonction reçoit in Tmemo, je l'analyse et je retourne un Tmemo.
Pb1:
dans la Fct,
Var Travail:Tmemo;
begin
travail:=TMemo.Create(Self); => ici Self est en rouge et ca plante!
...
Pb2:
dans la fiche qui appelle la fonction:
memo6:=MaFonction(...); =>ici mon memo6 ne se remplis pas
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 18 sept. 2010 à 12:30
Salut,
dans ce cas c'est pas sur le TMemo qu'il faut "travailler" mais plutôt utiliser TStrings ... le principe est le même sauf qu'on peut les utiliser dans presque tous les composants qui affichent du texte (Ex TMemo, TRichEdit, TComboBox, TListBox, TCheckListBox ... etc. etc.)
Et pour bien utiliser une fonction où procédure renvoyant un Objet je te conseille d'aller voir l'excellent article de notre ami "Flo" à ce sujet. Article indispensable si l'on veut pouvoir libérer correctement ce que l'on a précédemment créé.
jderf
Messages postés189Date d'inscriptionmercredi 29 décembre 2004StatutMembreDernière intervention 2 octobre 20141 17 sept. 2010 à 16:22
Bonjour,
Ta fonction recois en entrée un Tmemo et renvois un Tmemo.
Si tu passe un objet en paramètre, c'est en faite un pointeur sur ton object. Donc un code comme ci-dessous fonctionne
Dans Unit1
implementation
{$R *.dfm}
uses unit2;
procedure TForm1.Button1Click(Sender: TObject);
begin
Mafonction(Memo1);
end;
Dans Unit2;
procedure Mafonction ( Travail : Tmemo);
begin
Travail.Lines.Add('Test');
end;
CLio908
Messages postés15Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention21 novembre 2010 17 sept. 2010 à 18:13
Bonjour et merci
C'est la solution que j'avais retenu.
Je voulais en fait créer dynamiquement un Tmemo dans unit2, m'en servir pour du travail, puis retourner avec la fonction un Tmemo qui contient le résultat du travail.
comme ça je n'ai qu'un Tmemo initial qui n'est pas modifié, que je transmet a la fonction, qui elle retourne un Tmemo que je met ailleur.
A+