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

Résolu
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 - 30 déc. 2004 à 10:31
cs_barbichette Messages postés 220 Date d'inscription lundi 30 octobre 2000 Statut Membre Dernière intervention 15 juillet 2013 - 30 déc. 2004 à 12:02
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

cs_barbichette Messages postés 220 Date d'inscription lundi 30 octobre 2000 Statut Membre Dernière intervention 15 juillet 2013
30 déc. 2004 à 12:02
Elle est très bien
mais je ne voulait pas rentrer dans la surcharge du constructeur.
Mais elle marche très bien aussi.

Barbichette
3
cs_barbichette Messages postés 220 Date d'inscription lundi 30 octobre 2000 Statut Membre Dernière intervention 15 juillet 2013
30 déc. 2004 à 10:46
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)...
0
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 1
30 déc. 2004 à 11:14
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
0
Rejoignez-nous