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

Discussion: Form dans Panel [Lazarus]

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    novembre 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : novembre 2011
    Messages : 47
    Points : 35
    Points
    35

    Par défaut Form dans Panel

    Bonjour,

    Je cherche le moyen de déplacer une Form dans un Panel. J'arrive à créer la form dans le panel mais par contre je ne peux pas le bouger, auriez vous une solution s'il vous plait ?

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.Button1Click(Sender: TObject);
    begin
         feuille := TTest.Create(pnlform);
         feuille.Parent := pnlform;
         feuille.Show;
    end;

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    novembre 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : novembre 2011
    Messages : 47
    Points : 35
    Points
    35

    Par défaut

    En fait je ne sais pas si je suis parti sur la bonne solution... J'aimerai créer des Tform dynamiquement et les placer dans un conteneur sans qu'elles puissent en sortir, mais pouvoir quand même les faire bouger librement dedans...

  3. #3
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    janvier 2010
    Messages
    457
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : janvier 2010
    Messages : 457
    Points : 1 051
    Points
    1 051

    Par défaut

    Bonjour
    A mon avis, ce serait plutôt une TFrame qui permettrait ce que tu souhaites.
    C'est aussi un conteneur de tous les contrôles que tu veux.
    Cordialement,
    Tintinux

    Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
    Une version stable et une autre en développement, avec Lazarus : vous pouvez aider à la tester, la traduire et à la développer.

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Profil pro
    Inscrit en
    septembre 2008
    Messages
    4 685
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : septembre 2008
    Messages : 4 685
    Points : 9 878
    Points
    9 878

    Par défaut

    C'est en cliquant sur la barre de titre de la fenêtre qu'on peut la faire bouger.

    Si la fenêtre n'a pas de bordure, on peut tout de même leurrer le système en lui faisant croire que le curseur est bien positionné dessus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    type
      TTest = class(TForm)
      protected
        procedure WMNCHitTest(var Message :TMessage); message WM_NCHITTEST;
      end;
     
    procedure TTest.WMNCHitTest(var Message: TMessage);
    begin
      Message.Result := HTCAPTION;
    end;
    Bien sûr, il ne faut pas qu'il y ait un panel qui recouvre entièrement la fiche

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    novembre 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : novembre 2011
    Messages : 47
    Points : 35
    Points
    35

    Par défaut

    Bonjour,

    Merci pour vos réponses. J'arrive à créer la form dans le panel, elle a bien des bordures et impossible de la faire bouger dedans... C'est peut etre une propriete du TPanel qui me coince...

    je place l'exemple

    unit1
    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
     
    unit Unit1;
     
    {$mode objfpc}{$H+}
     
    interface
     
    uses
      Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
      StdCtrls, unit2;
     
    type
     
      { TForm1 }
     
      TForm1 = class(TForm)
        Button1: TButton;
        Panel1: TPanel;
        pnl: TPanel;
        procedure Button1Click(Sender: TObject);
      private
     
      public
     
      end;
     
    var
      Form1: TForm1;
      fiche2 : TForm2;
     
    implementation
     
    {$R *.lfm}
     
    { TForm1 }
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      fiche2 := TForm2.Create(nil);
      fiche2.Parent:=pnl;
      fiche2.Show;
     
    end;
     
    end.
    unit1 lfm
    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
     
    object Form1: TForm1
      Left = 346
      Height = 529
      Top = 119
      Width = 621
      Caption = 'Form1'
      ClientHeight = 529
      ClientWidth = 621
      LCLVersion = '1.8.4.0'
      object Panel1: TPanel
        Left = 0
        Height = 529
        Top = 0
        Width = 176
        Align = alLeft
        Caption = 'Panel1'
        ClientHeight = 529
        ClientWidth = 176
        TabOrder = 0
        object Button1: TButton
          Left = 32
          Height = 36
          Top = 8
          Width = 112
          Caption = 'Button1'
          OnClick = Button1Click
          TabOrder = 0
        end
      end
      object pnl: TPanel
        Left = 176
        Height = 529
        Top = 0
        Width = 445
        Align = alClient
        Caption = 'pnl'
        TabOrder = 1
        UseDockManager = False
      end
    end
    unit2
    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
     
    unit Unit2;
     
    {$mode objfpc}{$H+}
     
    interface
     
    uses
      Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
     
    type
     
      { TForm2 }
     
      TForm2 = class(TForm)
        Edit1: TEdit;
      private
     
      public
     
      end;
     
    var
      Form2: TForm2;
     
    implementation
     
    {$R *.lfm}
     
    end.
    unit2 lfm
    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
     
    object Form2: TForm2
      Left = 346
      Height = 177
      Top = 119
      Width = 237
      Caption = 'Form2'
      ClientHeight = 177
      ClientWidth = 237
      Position = poWorkAreaCenter
      LCLVersion = '1.8.4.0'
      object Edit1: TEdit
        Left = 45
        Height = 23
        Top = 61
        Width = 130
        TabOrder = 0
        Text = 'Edit1'
      end
    end

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

Discussions similaires

  1. Ajout Form dans Panel
    Par dadouuuu dans le forum C#
    Réponses: 1
    Dernier message: 09/09/2016, 21h30
  2. [c# ou VB.net] afficher une Form dans un Panel
    Par octal dans le forum Windows Forms
    Réponses: 4
    Dernier message: 09/03/2013, 17h43
  3. Fermer form dans Panel
    Par Yohken31 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 29/06/2011, 10h44
  4. [C#] Comment ouvrir une form dans un panel
    Par Le Basque dans le forum Windows Forms
    Réponses: 7
    Dernier message: 28/02/2007, 13h31
  5. [VS 2005/ C#]Afficher une form dans le panel d'un SplitterContain
    Par MoscoBlade dans le forum Windows Forms
    Réponses: 1
    Dernier message: 17/08/2006, 20h36

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