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 :

Delphi FlipChildren problème (Design Time controls & Runtime Controls)


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 23
    Points : 16
    Points
    16
    Par défaut Delphi FlipChildren problème (Design Time controls & Runtime Controls)
    Bonjour Tout le monde,

    J’ai constaté un problème bizarre relatif à la méthode FlipChildren du composant TForm ou les contrôle de type TWinControl :
    1- Test 1 qui fonctionne bien : Je mets un Panel (Panel1) dans une Fiche, et 3 autres Panels fils du Panel1 : Panel2, Panel3, Panel4 (placés en série). Form1.FlipChildren(True) marche très bien sans aucun problème.
    2- Test 2 qui ne fonctionne pas bien : On fait le même design du Test1 mais cette fois-ci en crée (en plus) 2 autres panels (Panel5 puis Panel6) fils du Panel1 en RuntTime (dans l’evtnt OnCreate du Form). Le problème que Form1.FlipChildren(True) fonctionne normale pour les controls DesignTime (à savoir Pane2..4) par contre les autres controls créés en RunTime (à savoir Panel5 et 6) ne se flippent pas correctement.

    Autre Information incompréhensible : L’ordre des controls du Panel1 (Exemple effectué dans Test 2) est : Panel5->Panel6->Panel2->Panel3->Panel4), mais normalement je dois avoir l’ordre : Panel2 Panel3 Panel4 Panel5 Panel6 (bien sûr, si je suis l’ordre de création), je sais pas comment Delphi distingue entre les controls DesignTime et RunTime pour nous donner cet incompréhensible ordre.
    Pour votre information j’utilise Delphi XE 8.1/ Windows 7 32 bits.

    Merci d’avance sur votre aide.

  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
    je viens de faire le test, tout fonctionne parfaitement.

    comment sont créés Panel5 et 6 ?

    il n'existe aucune différence entre un Panel créé en Design ou en Runtime

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 23
    Points : 16
    Points
    16
    Par défaut
    Merci Paul pour la réponse,
    Veuillez consulter l'image pour juste voir le nouveau positionnement des deux panels.
    le fichier en attachement contient le projet avec l'exe généré (Delphi 8.1).
    Merci.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 23
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    y-a-il une réponse à ce problème.

    Pour vous aider un peu, le problème réside dans le paramètre de la méthode Create. Si le paramètre = self c-à-d la form en question, tout marche bien, mais si le paramètre = le panel container (le panel qui contient les contrôles à créer) le problème résulte.

    D'autre part, même si on met le paramètre self dans la méthode create des différents contrôles, mais cette fois-ci on laisse le panel parent invisible (le panel qui contient les controls à créer), après la création des contrôles et l’exécution de flipchildren puis rendre panel parent visible, alors on aura le problème de nouveau.


    Merci d'avance.

  5. #5
    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
    c'est normal, le code de FlipChildren tient compte du Owner, les panels doivent donc obligatoirement avoir la fiche comme propriétaire sinon leur position n'est pas recalculée, ils sont simplement basculées en alRight et viennent se positionner à gauche sans inverser leur ordre.

Discussions similaires

  1. Problème rendu Design time sur custom control
    Par peaceandloveman01 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 18/11/2010, 18h06
  2. Réponses: 6
    Dernier message: 04/06/2008, 17h21
  3. [design time] copier coller de controles
    Par Pol63 dans le forum VB.NET
    Réponses: 1
    Dernier message: 15/05/2008, 17h06
  4. [Oracle][Delphi 7] Problème type de champ
    Par tiennos dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/07/2004, 10h17

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