[DELPHI 6] => Passage de parametres entre deux fiches [Résolu]

Signaler
Messages postés
344
Date d'inscription
jeudi 1 mai 2003
Statut
Membre
Dernière intervention
4 avril 2011
-
Messages postés
220
Date d'inscription
lundi 30 octobre 2000
Statut
Membre
Dernière intervention
15 juillet 2013
-
Bonjour à tous,

Je part d'une fiche (rechercher) pour en créer une autre (détail).
Et pour ça, j'aimerair passer l'id de l'élement concerné, à l'autre fiche directement lors de sa création.
(Sans faire de spagettis, pas de (rechercher) dans les uses de (détail))

dans (recherche), je crée ma fiche comme ceci:
Application.CreateForm(TfrmDetail, frmDetail);

Questions:
- Comment faut-il la créer pour passer le paramètre ?
- Faut-il faire une surcharge de formCreate dans (détail) pour y mettre un paramètre (et comment procéder) ou faut-il mettre le paramètre directement dans l'appel de la classe (et comment procéder) ?

Merci d'avance.
;)
David, à VERSAILLES

3 réponses

Messages postés
220
Date d'inscription
lundi 30 octobre 2000
Statut
Membre
Dernière intervention
15 juillet 2013

Elle est très bien
mais je ne voulait pas rentrer dans la surcharge du constructeur.
Mais elle marche très bien aussi.

Barbichette
Messages postés
220
Date d'inscription
lundi 30 octobre 2000
Statut
Membre
Dernière intervention
15 juillet 2013

Salut,

Tu peut ajouter un membre dans la clause Public de la déclaration de la class TFrmDetail:
telle :

TFrmDetail= class(TForm)
private
{ Déclarations privées }
public
{ Déclarations publiques }
Argument:string; // ou autre
end;

et

Application.CreateForm(TfrmDetail, frmDetail);
frmDetail.argument:='coucou';
frmDetail.show;

ainsi, dans FrmDetail, tu auras accès à 'argument' comme une propriété de ta fenêtre au même titre que sa taille ou son nom.

Si l'argument à passer est un longint ou une valeur quelconque, il existe déjà une propriété appelé 'TAG' qui ne sert à rien et qui permet de sauvegarder un nombre associé à un object.
Tu en trouverra dans toutes les classes (ou presque)...
Messages postés
344
Date d'inscription
jeudi 1 mai 2003
Statut
Membre
Dernière intervention
4 avril 2011
1
Salut barbichette,

Merci de ta rapidité mais ta réponse ne me convient pas, en effet:
le fait de faire le createForm(), execute en meme temps le show() et, de plus, dans le formCreate(), je fait des instructions qui ont besoin de ce paramètre.
Je ne peut donc le faire en deux fois.

mais j'ai eu une solution, j'aimerais que tu me dises si elle est propre:
- dans (détail), je surcharge Create:
constructor Create(AOwner: TComponent; param1 : string); overload;
- Dans laquelle j'affecte la variable:
cle := param1;
inherited create(AOwner);
- Ensuite, je créée ma fiche depuis (rechercher):
TfrmRch := TfrmDetail.create(self,cle);

;)
David, à VERSAILLES