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

Lazarus Pascal Discussion :

Gestion des tailles externes des TForm


Sujet :

Lazarus Pascal

  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : septembre 2015
    Messages : 252
    Points : 268
    Points
    268
    Par défaut Gestion des tailles externes des TForm
    Bonjour,

    quelqu'un sait-il comment on gère la taille externe des TForm ?
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    unit Unit1;
     
    {$mode objfpc}{$H+}
     
    interface
     
    uses
      Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;
     
    type
     
      { TForm1 }
     
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
        { private declarations }
      public
        { public declarations }
      end;
     
    var
      Form1: TForm1;
      F01, F02, F03: TForm;
      iW, iH: Integer;
     
     
    implementation
     
    {$R *.lfm}
     
    { TForm1 }
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      iW := 200; iH := 100;
     
      F01:= TForm.Create(Application);
      F01.Parent := Self;
      F02:= TForm.Create(Application);
      F02.Parent := Self;
      F03:= TForm.Create(Application);
      F03.Parent := Self;
     
      with F01 do  begin
        Left   := 0;
        Top    := 0;
        Width  := iW;
        Height := iH;
        //SetBounds(0, 0, iW, iH);
        Show;
      end;
     
      with F02 do  begin
        Left   := iW +1;
        Top    := 0;
        Width  := iW;
        Height := iH;
       //SetBounds(iW+1, 0, iW, iH);
        Show;
      end;
     
      with F03 do  begin
        Left   := 0;
        Top    := iH +1;
        Width  := iW;
        Height := iH;
       // SetBounds(0, iH +1, iW, iH);
        Show;
      end;
    end;
     
    end.
    Résultat :
    Nom : 170409.png
Affichages : 78
Taille : 23,3 Ko

    Je voudrais placer F01, F02 et F03 bord à bord sous Windows, Linux et OS X. Je cherche une méthode portable plutôt que l'utilisation de constantes de correction.

    Merci. Cordialement. AD.

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    septembre 2003
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2003
    Messages : 710
    Points : 1 575
    Points
    1 575
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    J'ai déplacé ton code du gestionnaire d'évennement OnCreate vers celui de OnShow puis j'ai apporté quelques petites modifications (voir code modifié ci-dessous). Et là ça marche en tout cas sous Windows. Je n'ai pas testé sous d'autres plateforme.

    Code PASCAL : 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
    procedure TForm1.FormShow(Sender: TObject);
    begin
      iW := 200; iH := 100;
      F01:= TForm.Create(Application);
      F01.Parent := Self;
      F02:= TForm.Create(Application);
      F02.Parent := Self;
      F03:= TForm.Create(Application);
      F03.Parent := Self;
     
      with F01 do  begin
        Left   := 0;
        Top    := 0;
        Width  := iW;
        Height := iH;
        //SetBounds(0, 0, iW, iH);
        Show;
      end;
     
      with F02 do  begin
    //    Left   := iW +1;
        Left   := F01.Width + 1 ;
        Top    := 0;
        Width  := iW;
        Height := iH;
       //SetBounds(iW+1, 0, iW, iH);
        Show;
      end;
     
      with F03 do  begin
        Left   := 0;
    //    Top    := iH +1;
        Top    := F02.Height +1;
        Width  := iW;
        Height := iH;
       // SetBounds(0, iH +1, iW, iH);
        Show;
      end;
    end;


    Nom : 2017-04-09_22-45-25.png
Affichages : 66
Taille : 10,0 Ko

    A+
    "Une idée mal écrite est une idée fausse !"
    http://hamid-mira.blogspot.com

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    8 762
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 8 762
    Points : 12 463
    Points
    12 463
    Par défaut
    Yop !
    Citation Envoyé par hmira Voir le message
    Je n'ai pas testé sous d'autres plateformes.
    Testé sous Linux Debian 32 bits, aucune des fiches "enfant" ne s'affiche. Aucune.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #4
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2015
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : septembre 2015
    Messages : 252
    Points : 268
    Points
    268
    Par défaut
    Bonjour,

    oui, probablement un problème de gnome semble-t-il : http://forum.lazarus-ide.org/index.php?topic=34661.0
    Cordialement. AD.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    juin 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2005
    Messages : 66
    Points : 96
    Points
    96
    Par défaut
    Bonjour.

    L'exemple avec les fenêtres filles fonctionne bien chez moi (XP). En revanche, si je pars d'une application vierge et que j'ajoute une 2ème fenêtre, j'ai le même problème de chevauchement.

    Exemple :
    form1 : left=500 et width=200
    form2 : left=701

    je dois mettre 708 pour que les bords se touchent (à 709 : petit espace)

    Bizarre !

Discussions similaires

  1. [WS 2008] Envoyer et recevoir des emails avec des serveurs externes
    Par saracen dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 07/12/2014, 16h30
  2. Mise en page auto en fonction des chapitres et des tailles de cellules
    Par GADENSEB dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/11/2014, 11h23
  3. [Débutant] taille axe des abscisses et des ordonnées
    Par bilou_12 dans le forum Images
    Réponses: 2
    Dernier message: 27/03/2012, 00h31
  4. ouvrir des fichiers avec des programmes externes
    Par julie_lab dans le forum IO
    Réponses: 1
    Dernier message: 25/10/2010, 07h05

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