IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Relation entre des form et/ou entre des unités


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Points : 40
    Points
    40
    Par défaut Relation entre des form et/ou entre des unités
    Bonjour à tous,

    Je suis nouveau sur ce site et étudiant L1 à l'université en informatique.
    Je suis entrain de programmer en delphi , pascal et j'aurais une question à vous posez.

    En fete je voudrais savoir comment il est possible de faire la relation entre deux Form, unités, sous delphi?
    En fete j ai un Form1 et un form2. Le form2 c'est une page NOUVEAU qui s'affiche lorsque j appuis sur Fichier, NouveauIl contient un label ou l utilisateur doit ecrire quelque chose et un Button OK pour valider et sortir de form2...Form1 contient donc le MainMenu ac un edit et un Label.J'arrive bien a faire apparaitre le form2 quand j appuis sur fichier ,nouveau dans form1. Je voudrais enregistrer ce que j écris dans dans form2 losque j appuis sur OK dans une constante pour pouvoir l afficher dans le label et edit de form1. Autrement je voudrais quand appuyant sur le Ok , le label.text de form2 se copie dans le label.text et edit.text de form1.

    J ai éssayé de de le faire par le biais d'une constante string mais elle n'est pas reconnu dans le form1.

    Ma question est : Comment sauvegarder la valeur de quelque chose et pouvoir l utiliser dans les autres form( form1,form2,form3...)ou Unités?
    Merci d'avance en esperant que je fusse assé precis dans ma question et dans mes explications

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 457
    Points
    28 457
    Par défaut
    ok, c'est le cas typique de deux unités qui se croisent

    pour que Unit1/Form1 puisse afficher Unit2/Form2 tu as Unit2 dans la clause USES de Form1

    si Form2 est affiché sous forme modale (ShowModal) tu peux tout simplement récupérer ton libellé depuis Form1 juste après le showmodal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    procedure TForm1.Button1Click(Sender:TComponent);
    begin
     if Form2.ShowModal=mrOK then begin
      Label1.Caption:=Form2.Edit1.Text;
     end;
    end;
    Sinon, et si tu préfères, au niveau de Unit2/Form2 tu peux ajouter Unit1 dans la clause Uses de la partie Implementation Unit2.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    unit Unit2;
    ...
    implementation
     
    uses Unit1;
     
    procedure TForm2.Button1Click(Sender:TComponent);
    begin 
    // version complète
     Unit1.Form1.Label1.Caption:=Edit1.Text;
    // version suffisante car Form1 n'est pas défini autre part que dans Unit1
     Form1.Label1.Caption:=Edit1.Text;
    // mauvaise version !!! mais qui fonctionne :(
     Form1.Label1.Caption:=Unit2.Form2.Edit1.Text;
    // version acceptable
     Form1.Label1.Caption:=Self.Edit1.Text;
    end;

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 52
    Points : 40
    Points
    40
    Par défaut
    Merci pour ta reponse,
    J'ai essayé ce que tu m as dit et ca ne fonctionne pas.
    J'ai -dans form2: Edit1 et button:OK;
    -dans form1: MainMenu, Label1 et Edit1.

    Dans Ok, je met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TNouveau.Button2Click(Sender: TObject);
    begin
      Form2.edit1.text:= form1.edit1.text;
      Form2.edit1.text:= form1.label1.caption;
      nouveau.Hide;
    end;
    Lorsque je compile , Le texte contenu dans form1.edit1 n'est pas modifier. Ca valeur initiale est inchangé malgré une compilation réussite.

    D'ou vient le problème?
    Merci d'avance.

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 457
    Points
    28 457
    Par défaut
    tu fais l'affectation à l'envers dans ton exemple

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer le skin des forms a l'aide des fichier dll
    Par Fariss Abdo dans le forum VB.NET
    Réponses: 0
    Dernier message: 05/05/2010, 23h23
  2. Réponses: 2
    Dernier message: 21/08/2009, 14h41
  3. Réponses: 8
    Dernier message: 24/05/2007, 19h09
  4. [Form] ordre de fermeture des forms
    Par ip203 dans le forum IHM
    Réponses: 2
    Dernier message: 14/06/2006, 15h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo