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 :

Problème avec le redimensionnement de panels


Sujet :

Langage Delphi

  1. #1
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut Problème avec le redimensionnement de panels
    Bonjour
    je relance mon autre souci ...

    Au fait, j'ai trois panels, un sur la gauche de ma forme et deux autres dont l'un est contenu dans l'autre. Pour les deux panels, le second sert comme afficheur d'un objet OLE cartographique. Entre le panel de gauche et le conteneur du panel CARTO j'ai déposé un splitter pour redimensionner la vue selon besoin. Sauf que quand je déplace le splitter mon panel CARTO se déplace sans prendre la totalité de la zone qui lui est dédiée bien qu'il soit positionné à alClient.

    Avez vous une idée sur la nature de ce problème ?
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  2. #2
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut
    Si ton premier Panel est en alLeft, les deux autres doivent être alClient, le parent et le conteneur.

    Peux tu poser une capture d'écran pour nous montrer ?

  3. #3
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Citation Envoyé par retwas Voir le message
    Si ton premier Panel est en alLeft, les deux autres doivent être alClient, le parent et le conteneur.
    ?
    Tout à fait, c'est ce que j'ai fait.

    Citation Envoyé par retwas Voir le message
    Peux tu poser une capture d'écran pour nous montrer ?
    Voilà Monsieur
    Dans la 1ère capture tout parait normal
    Dans la 2ème capture, si vous regardez à droite, et sur effet de déplacement du splitter j'ai le vide qui parait flagrant.
    Images attachées Images attachées   
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 420
    Points : 5 819
    Points
    5 819
    Par défaut
    a priori ce n'est pas tes panel qui pose problème mais ton client ole ... il faut peut être forcer le redimensionnement
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  5. #5
    Membre expérimenté
    Avatar de retwas
    Homme Profil pro
    Développeur Java/Delphi
    Inscrit en
    Mars 2010
    Messages
    698
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Java/Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 698
    Points : 1 608
    Points
    1 608
    Billets dans le blog
    4
    Par défaut
    Si tu met ton panel en couleur rouge tu verras qu'il prend toute la place, c'est ton image intérieur qui n'est pas redimensionné

    EDIT: Grillé

  6. #6
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Citation Envoyé par anapurna Voir le message
    a priori ce n'est pas tes panel qui pose problème mais ton client ole ... il faut peut être forcer le redimensionnement
    Citation Envoyé par retwas Voir le message
    Si tu met ton panel en couleur rouge tu verras qu'il prend toute la place, c'est ton image intérieur qui n'est pas redimensionné
    EDIT: Grillé
    merci à vous deux ... c'est ce que j'ai dû moi même comprendre mais le hic c'est que mon OLE me refuse ça même si je repeins la vue ainsi :
    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
    19
    20
    21
    procedure TfmMain.RzPanel_TreeResize(Sender: TObject);
    var
      msg_mi, DOC_CARTE : string;
    begin
      // Affichage dans le panel carto
      Str(RzPanel_CARTO_Map.Handle, sWinHand);
      // Préparation de l'affichage pour les cartes MI
      msg_mi := 'Set Application Window ' + sWinHand +
        ' Set Window Info Parent ' + sWinHand +
        ' Set Window Info ReadOnly ' + ' Set Next Document Parent ' + sWinHand +
        ' Style 1 ';
      OleMapInfo.do(msg_mi);
      try
        if DM.Rep_courant = '' then
           DOC_CARTE := GetCurrentDir + '\Map ZONE\GEXPLOITE_DESK.wor'
        else DOC_CARTE := DM.Rep_courant + '\Map ZONE\GEXPLOITE_DESK.wor';
        msg_mi := 'Run Application "' + DOC_CARTE + '"';
        OleMapInfo.do(msg_mi);
      Except
      end;
    end;
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  7. #7
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 420
    Points : 5 819
    Points
    5 819
    Par défaut
    je pense que l'on a pas bien du se comprendre ^^

    ton objet ole une fois posé ne doit pas se redimensionner automatiquement
    il te faut donc a mon avis lui redefinir les propriété left,top,width et height pour les synchroniser avec ton panel
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  8. #8
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Citation Envoyé par anapurna Voir le message
    ton objet ole une fois posé ne doit pas se redimensionner automatiquement
    il te faut donc a mon avis lui redefinir les propriété left,top,width et height pour les synchroniser avec ton panel
    même avec ça le résultat est toujours le même !

    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
    19
    procedure TfmMain.RzPanel_TreeResize(Sender: TObject);
    var
      msg_mi, DOC_CARTE : string;
    begin
      RzPanel_CARTO_Map.Parent := RzPanel_CARTO;
      RzPanel_CARTO_Map.Top := RzPanel_CARTO.Top;
      RzPanel_CARTO_Map.Width := RzPanel_CARTO.Width;
      RzPanel_CARTO_Map.Left := RzPanel_CARTO.Left;
      RzPanel_CARTO_Map.Height := RzPanel_CARTO.Height;
      RzPanel_CARTO_Map.Align := alClient;
      // Affichage dans le panel carto
      Str(RzPanel_CARTO_Map.Handle, sWinHand);
      // Préparation de l'affichage pour les cartes MI
      msg_mi := 'Set Application Window ' + sWinHand +
        ' Set Window Info Parent ' + sWinHand +
        ' Set Window Info ReadOnly ' + ' Set Next Document Parent ' + sWinHand +
        ' Style 1 ';
      OleMapInfo.do(msg_mi);
    end;
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  9. #9
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Citation Envoyé par retwas Voir le message
    Si tu met ton panel en couleur rouge tu verras qu'il prend toute la place, c'est ton image intérieur qui n'est pas redimensionné

    EDIT: Grillé
    ce n'est pas une image ... au sens propre du mot c'est un objet OLE
    au fait, la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Str(RzPanel_CARTO_Map.Handle, sWinHand);
    récupère le handle du panel qui servira de conteneur
    et la propriété alClient dans le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RzPanel_CARTO_Map.Align := alClient;
    indique bien qu'il doit occupé tout le conteneur. Donc, je ne vois pas pourquoi l'affichage ne prend pas tout le panel CARTO ? quelque chose m'échappe
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  10. #10
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Re,

    j'ai même essayé de reproduire la séquence affiche la carte comme si elle l'ouvrait pour la 1ère fois mais sans résultat !!!!

    une autre piste peut-être ?!
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  11. #11
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 931
    Points : 1 909
    Points
    1 909
    Par défaut
    Une autre piste ?

    Et bien si cela m'arrivait, j'afficherai dans des labels la position X et la largeur du panel ainsi que de l'objet ole affiché pour vérifier que c'est bien identique.

  12. #12
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Citation Envoyé par free07 Voir le message
    Une autre piste ?

    Et bien si cela m'arrivait, j'afficherai dans des labels la position X et la largeur du panel ainsi que de l'objet ole affiché pour vérifier que c'est bien identique.
    bizarre ... tout à fait rison, les dimensions ne sont pas les mêmes. Alors, tout naturellement j'ai affecté les dimensions du parent à l'enfant mais la situation est resté quasiment la même . La solution était de récréer la panel enfant en lui définissant les propriétés parent et autres pour que cela marche

    en finalité voici le code :
    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
     if CARTO_ZONE then
        begin
          RzPanel_CARTO_Map := nil;
          RzPanel_CARTO_Map.Free;
          RzPanel_CARTO_Map := TRzPanel.Create(Self);
          RzPanel_CARTO_Map.Parent := RzPanel_CARTO;
          RzPanel_CARTO_Map.Align := alClient;
          RzPanel_CARTO_Map.Top := RzPanel_CARTO.Top;
          RzPanel_CARTO_Map.Height := RzPanel_CARTO.Height;
          RzPanel_CARTO_Map.Left := RzPanel_CARTO.Left;
          RzPanel_CARTO_Map.Width := RzPanel_CARTO.Width;
          // Affichage dans le panel carto
          Str(RzPanel_CARTO_Map.Handle, sWinHand);
          // Préparation de l'affichage pour les cartes MI
    // suite du code
    un grand merci pour chacun de vous.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

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

Discussions similaires

  1. Problème avec le redimensionnement
    Par Mike888 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/11/2008, 17h18
  2. problème avec deux panel sur frame
    Par ulysse031 dans le forum AWT/Swing
    Réponses: 15
    Dernier message: 20/11/2007, 09h11
  3. Problème avec plusieurs panels
    Par GTJuanpablo dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/04/2007, 18h38
  4. Problème avec redimensionnement tableau
    Par PoZZyX dans le forum Réseau
    Réponses: 18
    Dernier message: 20/04/2006, 15h46
  5. [JscrollPane]Problèmes avec layout du panel intérieur
    Par Baptiste Wicht dans le forum AWT/Swing
    Réponses: 14
    Dernier message: 19/03/2006, 13h08

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