Création dynamique de composant [Résolu]

Messages postés
18
Date d'inscription
samedi 22 décembre 2007
Dernière intervention
21 novembre 2010
- - Dernière réponse : Cirec
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 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

Pourquoi?
merci
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
41
3
Merci
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éé.


[hr]@+Cirec
[hr]

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Cirec
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
12
0
Merci
Pb0: CLio908
Commenter la réponse de Caribensila
Messages postés
192
Date d'inscription
mercredi 29 décembre 2004
Dernière intervention
2 octobre 2014
1
0
Merci
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;

Commenter la réponse de jderf
Messages postés
18
Date d'inscription
samedi 22 décembre 2007
Dernière intervention
21 novembre 2010
0
Merci
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+
Commenter la réponse de CLio908

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.