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 :

Répartir dans un panel


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Par défaut Répartir dans un panel
    bonjour,

    j'ai un panel en haut de mon soft avec des groupbox dedans, et ça me sert de barre de menu.
    le "anchors" du panel est en akleft,akright.
    quand je mets le soft en pleine ecran, il agrandit donc bien le panel mais je me retrouve avec mes "groupbox" tout tassés a gauche et tout l'espace restant tout vide.... pas joli, y a t-il un moyen de les "répartir" sur la largeur ? a part faire un calcul pour modifier tous les "left" des groupbox ?
    j'ai regardé le composant "flow panel" mais ça n'a pas l'air de faire comme je le souhaite.
    je suis sous delphi 2006 + bibliotheque jvcl

    merci

    exyacc

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 096
    Par défaut
    suffit d'enlever akleft
    Tu fais ton design de façon a ce que tes groupbox soient centrés
    Pense à mettre une MinSize Contraints à la TForm pour ne pas superposer les groupbox

    Lors de l'agrandissement, il va lui même effectué ce calcul, en fait l'objet se comporte comme si il était centré
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Par défaut
    merci pour ta réponse ShaiLeTroll .
    j'ai joint 2 capture avant et apres resize,
    les 3 groupbox sont akright , quand je resize la forme, les groupbox suivent la bordure droite mais ne s'écartent pas entre eux ..
    j'ai oublié qqchose ?

    merci

    exyacc
    Images attachées Images attachées   

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 096
    Par défaut
    Citation Envoyé par exyacc Voir le message
    les 3 groupbox sont akright
    tu n'as rien oublié, si tu veux que cela centre et s'écarte, c'est juste Anchors = [akTop] !
    ni akRight ni akLeft

    Le GridPanel le fera aussi avec 33%, moi aussi j'avais trouvé l'éditeur de % extrêmement pénible !
    D'ailleurs, souvent je ne l'utilisais pas en DesignTime mais car je calculais le nombre de ligne, colonne, cellules fusionnées à partir de la base de données
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 62
    Par défaut Retailler compos en dynamique
    Bonjour à tous.
    Tu peux le faire par programmation directement.

    PnlLageur:=TPanel.Width ; // conteneur de tés compos
    Trois comboBox : 1,2 et 3 ça me rappel quelque chose
    ComboBox1.width := PnlLargeur div 3 -20 ; // le 20 consiste à placer les compos sans qu’ils se touchent, donc c’est à toi de faire le réglage par la suite selon ce que tu veux.

    J'espère que ça peut t'aider.
    j'ai fait des testes ça fonctionne impeccable.

    Nom : Avant.jpg
Affichages : 180
Taille : 76,3 Ko

    Nom : après.jpg
Affichages : 181
Taille : 30,0 Ko

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    type
      TForm1 = class(TForm)
        Panel1: TPanel;
        GB1: TGroupBox;
        GB2: TGroupBox;
        GB3: TGroupBox;
        procedure FormResize(Sender: TObject);
      private
        { Déclarations privées }
        Procedure RetaillerGroupBox;
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.FormResize(Sender: TObject);
    begin
    RetaillerGroupBox;
    end;
     
    Procedure TForm1.RetaillerGroupBox;
    Var
    PnlLargeur: Integer;
    begin
    PnlLargeur:=Panel1.width;
    GB1.Width:= PnlLargeur div 3 - 15;
    GB2.Width:= PnlLargeur div 3 - 15;
    GB3.Width:= PnlLargeur div 3 - 15;
    //---------------------------------//
     
    GB1.Top:= Panel1.Top ;
    GB2.Top:= Panel1.Top ;
    GB3.Top:= Panel1.Top ;
     
    GB1.Left:=Panel1.Left;
    GB2.Left:= GB1.Width +20;
    GB3.Left:= GB1.Width + GB2.Width +25;
    end;

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Par défaut
    merci a vous tous, j'ai fait un mix de tout

    bonne soirée

    exyacc

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 940
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 940
    Par défaut
    Citation Envoyé par exyacc Voir le message
    j'ai regardé le composant "flow panel" mais ça n'a pas l'air de faire comme je le souhaite.
    Utilise un TGridPanel.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 356
    Par défaut
    merci,

    ça a l'air pas mal le grid panel, par contre comment tu fais pour mettre une largeur de colonne du premier coup ?
    si j'ai 3 colonnes, et que je veux mettre 33% en largeur pour chaque, si je tape 33% dans la première, il m'écrit 40 %, je retape 33%, il m'écrit 35, etc. je dois mal m'y prendre..

    edit : en modifiant directement le .dfm, ça marche mais pas pratique, dommage qu'on puisse pas directement "clicker" sur les lignes de pointillés pour retailler a la souris ..

    cdmt

    exyacc

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

Discussions similaires

  1. Dessin dans les panels d'un TStatusBar
    Par Amenofis dans le forum Composants VCL
    Réponses: 4
    Dernier message: 31/08/2004, 18h45
  2. [image] dans un panel
    Par phoebe dans le forum Composants
    Réponses: 4
    Dernier message: 13/07/2004, 10h44
  3. [C#] Evenement click dans un Panel
    Par keyser-soze dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/05/2004, 22h21
  4. [Drag & Drop] Mettre une fiche dans un panel
    Par corwin_d_ambre dans le forum Composants VCL
    Réponses: 5
    Dernier message: 12/01/2004, 10h46
  5. comment acceder a un component lui meme dans un panel
    Par mimosa7 dans le forum Composants
    Réponses: 2
    Dernier message: 16/11/2003, 23h02

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