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

Composants VCL Delphi Discussion :

[MDI] Erreur échange de MDIChild dans une variable


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 98
    Points : 72
    Points
    72
    Par défaut [MDI] Erreur échange de MDIChild dans une variable
    Le titre n'est peut etre pas tres clair mais je vais essayer d'expliquer le plus clairement possible.

    Je travaille avec un application MDI
    pour eviter que certaines fenetres s'ouvrent en plusieur exemplaire, j'ai la fonction suivante qui me sert de verification :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function TfrmMain.isFormImplement(aForm: TForm): Boolean;
    var
      i : integer;
    begin
      result := false;
      for i := 0 to self.MDIChildCount-1 do
        if self.MDIChildren[i] = aForm then
        begin
          if Aform <> self.MDIChildren[i] then continue;
          result := true;
          exit;
        end;
      result := false;
    end;
    la creation de mes fenetres MDIChild ce fait de cette maniere :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TfrmMain.ActionMDIChildExecute(Sender: TObject);
    begin  
      if isFormImplement(FrmMDIChild) then FrmMDIChild.Show
      else
      begin
        FrmMDIChild:= TFrmMDIChild.Create(Application);
      end;
    end;
      FrmMDIChild.Show;
    mon erreur est la suivante :

    je me suis apercu que lors d'une succession d'ouverture/fermeture de fenetre. l'une de mes fenetres "s'ouvrait" dans une autre.

    si j'ouvre une fenetre X puis que je la ferme puis que j'ouvre une fenetre Y, je n'ai pas d'erreur.

    Apres plusieurs fois que j'ouvre une fenetre X, puis que j'ouvre fenetre Y sans avoir fermer ma fenetre. La deuxieme fenetre ne s'ouvre plus, car lors du test isFormImplement frmFenetreX contient les données de fenetreY.

    L'erreur se fait a coup sur lors de l'execution suivante.
    Ouverture fenetreA
    Ouverture fenetreB
    -> Fermeture fenetreB Fermeture fenetreA
    Ouverture fenetreB
    Ouverture fenetreA
    -> Fermeture fenetreA Fermeture fenetreB
    Ouverture fenetre A
    Tentative d'ouverture fenetre B <- echec lors du test (renvoie false)

    d'ailleur le show de la fenetreB (suite a l'echec de isFormImpement) se fait sur la fenetreA.

    J'ai supprimer toute l'execution du reste de mon code et l'erreur persiste, je me perds dans la destruction pour savoir ou l'échange se fait. En plein désepoir de cause, je viens voir si une âme charitable pourrais me filer un coup de main ou aurait deja eu ce probleme.

    Merci d'avance de votre aide.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 98
    Points : 72
    Points
    72
    Par défaut
    Up

    j'ai toujours pas trouvé solution a ce probleme. Pleeaase heelp

Discussions similaires

  1. [WD17] Concaténer les erreurs dans une variable globale
    Par neo25 dans le forum WinDev
    Réponses: 4
    Dernier message: 19/11/2012, 12h42
  2. Réponses: 22
    Dernier message: 17/06/2012, 10h28
  3. [XL-2002] Erreur lors de la récupération du contenu du presse-papiers dans une variable
    Par KiksGirl dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/07/2011, 16h14
  4. stocker le résultat d'un sed dans une variable : erreur
    Par ben.IT dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 22/02/2011, 16h35
  5. [langage] Extraire un block dans une variable multiligne
    Par |DUCATI| DesMo dans le forum Langage
    Réponses: 9
    Dernier message: 11/02/2003, 14h56

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