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 :

Fenêtre dans une autre?


Sujet :

Composants VCL Delphi

  1. #1
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut Fenêtre dans une autre?
    Bonsoir à tous,

    Voila je suis bloqué...

    En faite, je voulais créer une application avec un bandeau en haut, et en dessous, l'affichage des différentes Form... Regarder la photo ci dessous vous comprendrez mieux :

    http://georges86.free.fr/Prog/zone.jpg

    J'ai voulu faire un test avec des Cadres Les soucis, c'est que ça représente beaucoup de contraintes, car je ne peut pas Utiliser de Datamodule, et je ne peux pas Communiquer entre les différents cadre comme je le ferais avec les Forms, par exemple si je suis sur mon Form1 et que je veux Toucher un composant du Form2, je peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form2.Edit1.text:='salut tout le monde !';
    Cette methode ne fonctionne pas avec les cadres... donc je voulais savoir comment faire pour que Mes Forms Apparaisse dans la zone prévu à cette effet de ma FormPrimaire...

    Merci de votre aide !

  2. #2
    Membre éclairé Avatar de Kaféine
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 569
    Points : 736
    Points
    736
    Par défaut
    Salut,

    Cette methode ne fonctionne pas avec les cadres...
    sisi...

    idéalement, une form ou frame de base et toutes nouvelles forms dérivant de celle-ci. un panel pour supporter les forms dans la fiche principale et on les collent dedans même si on pourrait les coller directement sur la fiche principale.

    une form de base avec les init communes à toutes les forms
    exemple:

    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
     
     
    TfrmBase = class(TForm)
    public
       constructor Create(AOwner: TComponent); override;
    end;
     
    (...)
     
    constructor TfrmBase.Create(AOwner: TComponent); 
    begin
      inherited Create(AOwner);
      BorderStyle := bsNone;
      Align := alClient;
    end;

    une form dérivée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    TfrmTest = class(TfrmBase)
    end;

    on crée et colle la form sur le panel de la fiche principale lors d'un clique sur une bouton par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    procedure TfrmPrincipale .Button1Click(Sender: TObject);
    begin
      frmTest := TfrmTest.Create(nil);
      frmTest .Parent := pnlContainer;
      frmTest .Show;
    end;
    l'instanciation des fiches peut être effectuer via une procédure accéptant comme paramètre une classe par exemple.
    donc on modifie un peu le code de la form principale.
    on ajoute une fonction qui créra la fiche, la colleras sur notre panel et nous renvois l'instance fraichement créée.

    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
     
    TfrmPrincipale = class(TForm)
    public
        function CreerFiche(const AFormClass: TFormClass): TCustomForm;
    end;
     
    (...)
    implementation
     
    function TfrmPrincipale .CreerFiche(const AFormClass: TFormClass): TCustomForm;
    begin
      Result := AFormClass.Create(Self);
      Result.Parent := pnlMain;
      Result.Show;
    end;
    du coup on appel cette fonction lors du clique sur le bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TfrmPrincipale.Button1Click(Sender: TObject);
    begin
       CreerFiche(TfrmBase);
    end;
    ceci peut également être fait avec des frames...

    pour aller plus loin, l'idée serait d'implémenter un manager de form qui s'occuperait de la gestion des fiches (instanciation, destruction, communication) en y intégrant quelques design pattern.

    En espérant que c'est clair pour toi.
    Akim Merabet

  3. #3
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Pourrais-tu me faire parvenir un dossier zippé avec un projet contenant ce que tu m'as noté? car j'ai beaucoup de mal à comprendre...

    En attendant, je me creuse la tête !

  4. #4
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Bon... Et bien Merci, j'ai réussi à faire fonctionner ton code...

    Maintenant j'aimerai que quelqu'un m'éxplique précisément ce qui ce passe dans ce code, car je ne comprend rien du tout...

    Voici l'adaptation que j'ai faite du 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    type
      TForm1 = class(TForm)
      Button1: TButton;
      Panel1: TPanel;
     
    procedure Button1Click(Sender: TObject);
     
      private
        { Déclarations privées }
      public
    function CreerFiche(const AFormClass: TFormClass): TCustomForm;
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    uses Unit2;
     
    function TForm1.CreerFiche(const AFormClass: TFormClass): TCustomForm;
    begin
      Result := AFormClass.Create(Self);
      Result.Parent := Pannel1;
      Result.Show;
    end;
     
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      CreerFiche(TForm2);
    end;

    Bien sur, sur mon Form2, j'ai ajouté ce 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
    16
     
     public
    constructor Create(AOwner: TComponent); override;
      end;
     
    var
      Form2: TForm2;
     
    implementation
     
    constructor TForm2.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner);
      BorderStyle := bsSingle;
      Align := alClient;
    end;
    Pourquoi faire appartenir la Form2 à un Pannel, car j'ai essayé en le mettant sur mon Form1, et ça fonctionne aussi...

    Au passage, si vous pouviez m'en dire plus sur le TComponent

    Merci de votre aide !! Et un grand merci à Kaféine !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour,

    L'avantage d'utiliser une panel, tient dans le faite que vous maitriser l'emplacement de votre forme. C'est celle du panel.

    Du coup, vous pouvez l'agrandir, la diminuer, la déplacer, la cahcer la montrer en
    Agrandissant, diminuant (etc.) le panel. Vos fonction de contreole n'on pas a connaitre la forme, uniquement le panel.

    Nota:
    A condition que la forme soit bien Aligne en Alclient (prend toute la pplace disponible dans son parent), comme dans votre exemple.


    Pour reprendre l'aide delphi (Delphi7 en français parce que je préfère ne pas qualifier l'aide de delphi2007) :

    TComponent est l'ancêtre commun àtoutes les classes composant
    .

    En gros, tous ce que vous VOYER à l'écran descend de TComponent.

  6. #6
    Membre habitué Avatar de kumo
    Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 215
    Points : 125
    Points
    125
    Par défaut
    Juste pour pévenir, tu devrais je pense mettre juste le lien brute vers ta copie d'ecran et pas la mettre comme ça, car pour ceux qui ont une connection super lente, ça va mettre du temps pour charger

    Merci
    Voici les meilleurs sources du monde:
    Les tutos- La F.A.Q
    et aussi
    Google...si si c'est bien essaye....c'est satisfait ou satisfait

    lisez les règles et n'oubliez pas le

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Il y a un complet d'info ICI, concernant l'Alignement, cela peut aussi te servir... l'ancrage est un sujet qui revient tout le temps ...

    Citation Envoyé par Tardiff Jean-François Voir le message


    Pour reprendre l'aide delphi (Delphi7 en français parce que je préfère ne pas qualifier l'aide de delphi2007) :

    TComponent est l'ancêtre commun àtoutes les classes composant
    .

    En gros, tous ce que vous VOYEZ à l'écran descend de TComponent.
    Euh, les TComponents regroupent les composants Visuel et non Visuel, c'est à partir du TControl que l'on a la notion de visibilité, qui est exploité ensuite par les WinControl\WidgetControl ou GraphicControl

    Le TComponent introduit la gestion des Flux (lecture\écriture les fichiers DFM à partir des propriétés) à partir des RTTI activés pour tous les Descendants des TPersistent ...

    le TComponent ajoute aussi la notion de possession d'un objet par un autre (voir Owner et ComponentList), c'est pour faciliter la gestion des libérations

    le TControl ajoute la notion de parenté d'un objet dans un autre, (voir Parent et ControlList), c'est pour organiser de façon logique et visuelle l'imbrication\ancrage des controles entre eux ...
    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

  8. #8
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Aie...

    J'arrive bien à ouvrire mes forms dans ma form principal, le souci, c'est que je ne peut pas utiliser les forms de façon normal...

    Pour que je puisse écrire dans un champ text, il faut que je fasse un clique droit...

    Par contre pour un ComboBox, un clique gauche fonctionne...

    Pourquoi ma form ne fonctionne pas correctement???

    Merci d'avance de votre aide.

  9. #9
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    BorderStyle, il faut le changer à bsNone ... tu n'as pas lu le sujet que j'avais mis en lien ...
    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

  10. #10
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    BorderStyle, il faut le changer à bsNone ... tu n'as pas lu le sujet que j'avais mis en lien ...

    Si, j'ai lu le sujet que tu m'as filé, et en BorderStyle = BsNone, ça fonctionne, mais justement, j'aimerais avoir les bords sur ma fenêtre... Et donc en utilisant un BorderStyle = BsSingle ou quelque chose comme ça.

    Le souci, c'est que si je fais ça, je ne peut plus utiliser mes TEdit etc...

    Merci de ton aide !

  11. #11
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Je n'ais toujours pas trouvé la solution, si quelqu'un pouvait me dépanner... Merci !

  12. #12
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Tu as une astuce à la con, tu mets ta forme avec tes Edit en BorderStyle BsNone, et tu mets dans un panel celle-ci, une troisième forme en BorderSyle = bsSingle, juste de la taille de la bordure Window (ClientHeigth = 0), et tu as ton effet

    Sinon, etudie le code et le comportement de focus d'une fenêtre en bsNone et bsSingle, il y a surement une raison pourquoi le focus est très étrange en fonction du bord, j'ai eu aussi ce soucis avec Win98 ...

    Sinon, voir les composants TMSPanel ...
    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

  13. #13
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Points : 1 561
    Points
    1 561
    Par défaut
    Bonjour,

    Le problème se situe dans la procédure TForm1.CreerFiche avec l'affectation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Result.Parent := Pannel1;
    Il faut tout simplement utiliser dans ce cas l'API setparent de windows de la façon suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function TForm1.CreerFiche(const AFormClass: TFormClass): TCustomForm;
    begin
      Result := AFormClass.Create(Self);
      windows.SetParent(Result.Handle, Form1.Handle);
      Result.Show;
    end;
    Cordialement
    Pensez à utiliser les tags dans le titre.
    Avant de poser une question reportez-vous à la FAQ Delphi
    Respectez les règles du forum.

  14. #14
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par jojo86 Voir le message
    ... je ne peux pas Communiquer entre les différents cadre comme je le ferais avec les Forms, par exemple si je suis sur mon Form1 et que je veux Toucher un composant du Form2, je peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Form2.Edit1.text:='salut tout le monde !';
    Cette methode ne fonctionne pas avec les cadres...
    ben je vois pas où est ton problème

    quand tu fais Form2.Edit1 tu pointes sur une instance en particulier de TForm2...Ce n'est pas plus juste que de faire un Form1.Frame1.Edit1 qui pointe sur une instante en particulier de TFrame1
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  15. #15
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Citation Envoyé par Pascal Jankowski Voir le message
    Windows.SetParent


    Effectivement, je l'avais déjà utilisé pour faire des fenêtres déplaçables (genre graphe UML) et surtout focusables (moins contraignant qu'un MDI) ... ou pour choper un SysTreeView32 de Explorer et le mettre dans mon appli ...

    mais attention, cela ne gère plus Align, ni le correctement les Anchors ...
    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

  16. #16
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    ben je vois pas où est ton problème

    quand tu fais Form2.Edit1 tu pointes sur une instance en particulier de TForm2...Ce n'est pas plus juste que de faire un Form1.Frame1.Edit1 qui pointe sur une instante en particulier de TFrame1
    Ce problème est corrigé...

    function TForm1.CreerFiche(const AFormClass: TFormClass): TCustomForm;
    begin
    Result := AFormClass.Create(Self);
    windows.SetParent(Result.Handle, Form1.Handle);
    Result.Show;
    end;
    Ok, ça fonctionne... Par contre, sur mon form1 j'ai un Panel en haut et je voudrais que ma form apparaisse en dessous du Panel... une Idée?

  17. #17
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    C'est bon je viens de trouver !!!

    Ah là là a force de "Bidouiller" on finit par trouver !!!

    Voici ce que j'ai fais, j'ai toujours laissé mon Panel2 qui servira à defini la taille de la form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    windows.SetParent(Result.Handle, Form1.Panel2.Handle);
    Pour Info, Handle correspond à quoi concrètement??? à la taille de l'object?

    Merci à vous !

  18. #18
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par jojo86 Voir le message
    Pour Info, Handle correspond à quoi concrètement??? à la taille de l'object?
    Une petit réponse dans la !

    @+

  19. #19
    Membre averti
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Janvier 2007
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 144
    Points : 337
    Points
    337
    Par défaut
    Merci !!

    Hélàs, j'ai du mal avec la fonction... car j'ai l'impression que ma fiche n'est pas déclarée dans la liste des Forms...

    Avant que Pascal Jankowski me donne sa fonction, voici ce que je faisait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Application.CreateForm(TAppArrive, AppArrive);
    windows.SetParent(AppArrive.Handle, Form1.Panel2.Handle);
    AppArrive.Show;
    Je rentrais directement le nom de ma form sur chaque bouton... Vu que j'ai plusieurs bouton, j'avais pas envi de faire ça pour tout les boutons, j'ai donc voulu utiliser la fonction comme ceci :

    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
     
    function TForm1.CreerFiche(const AFormClass: TFormClass): TCustomForm;
    begin
    Result := AFormClass.Create(Self);
    windows.SetParent(Result.Handle, Form1.Panel2.Handle);
    Result.Show;
    end;
     
    {puis Appel de la fonction pour afficher le form}
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    CreerFiche(TAppArrive);
    AppArrive.Edit1.Text:='test'; // Bug sur cette ligne
    AppArrive.BtnSuivant.Enabled:=false;// Et sur toutes les autres qui font apl à la form
    ...
    end;
    Juste après l'appel de la fonction, je viens Initialiser des valeurs, etc... Avec l'utilisation de la fonction, je ne parviens pas à atteindre mes objets...

    Si vous pouviez m'aider

    Merci !

  20. #20
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AppArrive := CreerFiche(TAppArrive);
    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

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Centrer une fenêtre dans une autre
    Par johnrando dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 24/11/2014, 09h16
  2. Incorporer une fenêtre dans une autre
    Par fanxat dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 07/04/2009, 20h40
  3. Creation d'un formulaire permettant d'ajouter des information dans une autre fenêtre
    Par @rno0059 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 22/06/2007, 07h47
  4. galerie d'image qui s'ouvre dans une autre fenêtre
    Par crampouz dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 17/02/2006, 14h17
  5. Réponses: 3
    Dernier message: 05/09/2005, 14h09

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