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 :

[MDI] Indépendance des variables dans chaque fenêtre enfant


Sujet :

Langage Delphi

  1. #1
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut [MDI] Indépendance des variables dans chaque fenêtre enfant
    Bonjour à tous,

    J'ai une application MDI et dans la fille, j'ai une variable tableau de structure qui n'existe que dans la fille (déclaration, affectation, ...) et une variable qui compte le nombre d'élements de ce tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    type
      tElement = record
        id,haut,gauche,l,h: Integer;
       end;
    var
      tabElements: array of tElement;
      lTabElements: Integer; // Nombre d'elements
    A chaque création de fille, j'initialise lTabElements à 0.

    Lors de l'utilisation de l'application, le tableau se remplit et tout marche à merveille.
    Seulement, lorsque je crée une deuxième fille MDI, la variable de la première fille se réinitialise à 0 (c'est comme si c'était une variable globale).

    Je crée mes filles comme ceci (c'est l'assistant qui le fait):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TfrmMain.CreateMDIChild(const Name: string);
    var Child: TMDIChild;
    begin { crée une nouvelle fenêtre enfant MDI }
      Child := TMDIChild.Create(Application);
      Child.Caption := Name;
    end;
    Comment faire pour que chaque fille MDI soit indépendante des autres ?

    Merci d'avance.
    David.

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Si tu veux que chaque fiche soit indépendante, déclare les variables qui les concerne en tant que membre de TMDIChild
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    TMDIChild=class(TFom)
    private
      ...
    public
      tabElements: array of tElement; 
      lTabElements: Integer;
      ...
    end;
    Bon dev'
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  3. #3
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut
    si tu déclare tes variables en var, elles sont visibles pour toutes les autres unités qui utilise FIlleMDIU dans leur clause uses,

    donc quand tu créé une nouvelle fille, tu écrase la référence de la variable précédente.

    Pour résoudre, utiliser des propriété que tu place en Private ou Public suivant l'usage qu etu veux en faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Type telement=record 
     ....
     
    end;
     
    Type TaFilleMID=class(Tform);
    ...
    private
      tabElements: array of tElement;
      lTabElements: Integer; // Nombre d'elements

  4. #4
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Salut RamDevTeam et Pedro204,

    Merci beaucoup, ca marche !

    En fait, j'ai créé une unité commune ou je déclare ma structure propre à toutes les filles.
    David.

  5. #5
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    N'oublie pas le chtit
    Pedro
    Aucune réponse aux sollicitations techniques par MP

    Faut pas attendre d'en avoir besoin pour s'en servir... (Lucien Stéphane)

    Les pages Source C'est bon. Mangez-en!
    Le défi Delphi
    Règles du forum - FAQ Delphi - Pensez au chtit
    Aéroclub Bastia Saint-Exupéry

  6. #6
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Oups, excuses moi... Ce n'est pas dans mes habitudes (trop pressé de me remettre au travail maintenant que ça marche, hi)
    David.

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

Discussions similaires

  1. (MDI) creer des objet dans formulaire enfant
    Par brahim20 dans le forum VB.NET
    Réponses: 2
    Dernier message: 13/08/2010, 21h05
  2. Réponses: 1
    Dernier message: 12/02/2009, 12h21
  3. [EasyPHP] problème de visibilité des variable dans les includes
    Par d1g-2-d1g dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 23/10/2005, 01h55
  4. Réponses: 5
    Dernier message: 21/10/2005, 11h48
  5. [AS2] déclarer des variables dans une fonction
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 12
    Dernier message: 02/08/2005, 12h50

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