gorneaue
Messages postés6Date d'inscriptionjeudi 14 août 2003StatutMembreDernière intervention16 novembre 2003
-
26 oct. 2003 à 20:59
gorneaue
Messages postés6Date d'inscriptionjeudi 14 août 2003StatutMembreDernière intervention16 novembre 2003
-
27 oct. 2003 à 09:13
j'ai un projet de gestion de carnet d'adresses :
- la fenetre principale est une fenetre MDI (fsMDIForm)
- la fiche de visualisation d'un contact est une fenetre MDI Child (fsMDIChild)
- j'ai cree une classe TContact qui represente un contact
il est possible de visualiser plusieurs contacts (ie ouvrir plusieurs fenetres contact).
mon probleme est que je ne sais pas comment affecter un objet TContact different a chaque fenetre de contact.
actuellement, j'ai declare :
var le_contact : TContact
juste en dessous de la section "type ... end;" de la fiche contact.
mais le_contact est le meme objet pour chaque fenetre ouverte !
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 26 oct. 2003 à 22:58
Tu peux, par exemple surcharger le constructeur des fiches contact et lui passer en paramètre une référence sur le contact créé :
//première chose, déclarer un nouveau constructeur pour la fiche Contact et un champ qui nous servira à manipuler les valeurs reçues en paramètre :
private
FContact: TContact;
public
constructor CreateWithContact(AOwner: TComponent; AContact: TContact);
end;
Maintenant, il faut :
1/- créer un contact. Ici, j'ai initialisé ses valeurs de manière aléatoire.
2/- modifier l'appel dans du constructeur de la fiche TMdiChild :
procedure TMainForm.CreateMDIChild(const Name: string);
var
Child: TMDIChild;
Contact: TContact;
begin
Contact : = TContact.Create; Contact.Nom := StringOfChar(Chr(65 + Random(26)), random(20)+ 1);
Contact.Prenom := StringOfChar(Chr(65 + Random(26)), random(15)+1);
{ crée une nouvelle fenêtre enfant MDI }
Child : = TMDIChild.CreateWithContact(Application, Contact);
Child.Caption := Name;
if FileExists(Name) then Child.Memo1.Lines.LoadFromFile(Name);
end;
Pour vérifier tout celà, affichons les valeurs reçues dans un TMemo sur la fiche TMdiChild :