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

Langage Delphi Discussion :

Identifier les form crées dynamiquement


Sujet :

Langage Delphi

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut Identifier les form crées dynamiquement
    bonjour

    avec un ami, nous avons élaboré un projet à 2 form (form1 et form2) dont le but est de créé auant de form2 que l'on veuille à partir d'un boutton (par ex) se trouvant sur la form1

    le code fonctionne :

    - déjà dans "Project1" (source) on enlève : Application.CreateForm(TForm2, Form2);
    - dans les var global de form2, on enlève : Form2: TForm2;

    nous avons du effectuer ces modifications, car nous ne pouvions pas compiler le projet

    et le code du bouton se trouvant en form1 est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var
      fiche : Tform2;
    begin
      Application.CreateForm(TForm2, fiche);
      fiche.Init('ok');
      fiche.Show;
      showmessage(fiche.Name) // j'expliquerai plus bas pourquoi ceci
    end;
    en cliquant sur le bouton x fois, nous avons x fois l'ouverture d'une form2

    le soucis c'est que je n'arrive pas à identifier chaque formx nouvellement crée

    j'aimerais par exemple depuis la form1 agir sur les autres form, mais je ne connais pas leur nom

    un petit indice ? le showmessage que j'ai rajouté à la fin
    j'ai remarqué :
    lors de la 1ere creation fiche.name = form2
    lors de la 2em creation fiche.name = form2_1
    lors de la 3em creation fiche.name = form2_2
    ainsi de suite ...

    ça peut sans doute aider ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Pour commencer doucement, tu peux par ex. donner un nom à tes fiches à la création. Après le Application.CreateForm -> fiche.Name := 'MonNom';
    Ou changer n'importe quelle propriété (ex. Tag), ou encore ajouter une propriété à ta fiche.

  3. #3
    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 : 54
    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 445
    Points
    28 445
    Par défaut
    le nom de la fiche n'a pas d'importance !

    il te suffit d'avoir dans Form1 une liste (TList) des fiches que tu crées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var
      fiche: TForm2;
    begin
      fiche := TForm2.Create(Application);
      liste.Add(fiche);
    end;
    tu pourras alors accéder à chaque fiche par TForm(fiche[i])

    note également que les fiches de l'application sont recensées dans Screen.Forms[]
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    merci à vous 2

    paul, j'ai utilisé une boucle (0 to formscount-1) et ensuite FindComponent pour retrouvé par exemple le memo se trouvant sur la fiche

    je pense que ça fonctionne

Discussions similaires

  1. [APEX] Afficher les tables créées dynamiquement
    Par Fabii dans le forum Outils
    Réponses: 1
    Dernier message: 29/02/2012, 13h36
  2. OpenGl rendering dans une form créée dynamiquement
    Par hey_monkey dans le forum Débuter
    Réponses: 5
    Dernier message: 14/12/2011, 11h07
  3. Réponses: 5
    Dernier message: 20/09/2007, 17h53
  4. [Excel] Charger une form créée dynamiquement dans un autre classeur
    Par spileo dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/02/2007, 11h58
  5. delete Form créée dynamiquement
    Par J P dans le forum C++Builder
    Réponses: 8
    Dernier message: 22/02/2006, 22h42

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