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 :

Affichage form dans conteneur


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    automaticien
    Inscrit en
    Mars 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : automaticien
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2012
    Messages : 28
    Par défaut Affichage form dans conteneur
    Bonjour,

    voila dans mon projet j'ai une forme dans laquelle j'aimerais faire apparaitre deux autres formes dans des Tpanel ou TgroupeBox.

    fonctionnement souhaité :
    ma première forme j'ai deux boutons, chacun me permet d'acceder a une forme differente, dans ces secondes formes il y a un bp qui active une autre forme. C'est elle qui apparaitra dans le conteneur de la première forme .
    ->FLancement-> FEncours(apparait dans le panel 1)
    FChoixquais |
    -> FLancementQ1 -> FEnCoursQ1 (apparait dans le panel2)


    J'ai regarder dans les sources delphi ou j'ai trouvé un exemple "comment ouvrire une fiche dans un conteneur" j'ai essayé mais cela n'a pas fonctionné.
    l'application plante.

    voici ce que j'ai fais (pour un seul panel):

    Dans la forme 1 :
    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    unit ChoixQuai;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls, SPV_Composants, jpeg, Menus, ImgList;
     
    type
      TFChoixquais = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Label1: TLabel;
        Button3: TButton;
        Button4: TButton;
        Panel1: TPanel;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
        procedure Button4Click(Sender: TObject);
        Procedure FormCreate(Sender: TObject);
        Procedure FormActivate(Sender: TObject);
        Procedure Panel1Resize(Sender: TObject);
     
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      FChoixquais: TFChoixquais;
      quai1actif : boolean;
      quai2actif : boolean;
     
     
    implementation
            uses
            Lancement,
            LancementQuai1,
            SPV_u_base,
            SPV_base,
            SPV_Specifique, Principale, EnCours, Unit1;
     
    {$R *.dfm}
     
     
     
    procedure TFChoixquais.Button1Click(Sender: TObject);
    begin
           FLancementQ1.Show;    
    end;
     
    procedure TFChoixquais.Button2Click(Sender: TObject);
    begin
            FLancement.Visible:=true;
    end;
     
    procedure TFChoixquais.Button3Click(Sender: TObject);
    begin
            if not AccesAutorise(cmprogrammeur) then exit;
            FPrincipale.show;
            FChoixquais.Close;
    end;
     
    procedure TFChoixquais.Button4Click(Sender: TObject);
    begin
            FEnCours.show;
            FChoixquais.Close;
    end;
     
    //********************************************************
    //                          Affichage des formes dans les conteneurs
    //********************************************************{----------------------------------------------------------------}
    Procedure TFChoixquais.FormCreate(Sender: TObject);
    Begin
      FEnCours := TFEnCours.Create(FChoixquais);
      Windows.SetParent(FEnCours.Handle, Panel1.Handle);
    End;
     
     
    {----------------------------------------------------------------}
    Procedure TFChoixquais.Panel1Resize(Sender: TObject);
    Begin
      SetWindowPos(FLancement.Handle, 0, 0, 0,
        Panel1.ClientWidth, Panel1.ClientHeight, SWP_NOACTIVATE);
    End;
     
     
    {----------------------------------------------------------------}
    Procedure TFChoixquais.FormActivate(Sender: TObject);
    Begin
     Panel1.Height := ClientHeight - Panel1.Top - Panel1.Left;
     Panel1.Width := ClientWidth - Panel1.Left * 2;
     Panel1.Anchors := [akLeft, akTop, akRight, akBottom];
    End;
     
     
    {----------------------------------------------------------------}
    End.
     
     
    end.
    dans l'unite Lancement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TFLancement.ButtonConfirmationClick(Sender: TObject);
    begin
     
      FEnCours.Visible:= true ;
      SetWindowPos(FLancement.Handle, 0, 0, 0,
      FChoixquais.Panel1.ClientWidth,  FChoixquais.Panel1.ClientHeight, SWP_NOACTIVATE);
     
       FLancement.Close;
    end;

    Si vous connaissez d'autre solution, pouvez vous m'en faire part?
    merci

  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
    Soit tu utilises une Frame
    Soit tu utilises une TForm avec la Propriété Parent renseigné avec ce Panel ou GroupBox
    Soit tu utilises une TForm en MDIForm et les autres en MDIChild

    En général, SetParent ou SetWindowPos ne sont pas utiles, on peut souvent écrire quelque chose de plus simple avec les éléments standards de la VCL !

    Attention aussi au Variable globale comme FEnCours, l'utilisation de FChoixquais comme Onwer de FEnCours
    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 averti
    Homme Profil pro
    automaticien
    Inscrit en
    Mars 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : automaticien
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2012
    Messages : 28
    Par défaut
    ok merci j'ai utilisé des frames et ça a fonctionné
    C'est vrai que c'est beaucoup plus simple que ce que j'avais fait au début.

Discussions similaires

  1. DirectShow affichage webcam dans une form
    Par TERRIBLE dans le forum API graphiques
    Réponses: 0
    Dernier message: 27/04/2008, 17h36
  2. DirectShow affichage vidéo dans une form
    Par TERRIBLE dans le forum DirectX
    Réponses: 1
    Dernier message: 27/03/2008, 19h42
  3. Affichage word dans form et barre d'outils.
    Par lejert dans le forum Composants VCL
    Réponses: 1
    Dernier message: 25/01/2008, 12h03
  4. Loader une Form dans Conteneur ou Panel
    Par coucoulido dans le forum Delphi
    Réponses: 1
    Dernier message: 12/02/2007, 10h47
  5. Problème affichage form avec Internet Explorer dans un menu
    Par dupard2006 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 28/03/2006, 19h26

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