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 :

Problème avec les TFrames


Sujet :

Composants VCL Delphi

  1. #1
    Invité
    Invité(e)
    Par défaut Problème avec les TFrames
    Bonjour à tous,

    Je ne sais pas si ce problème a déjà été soulevé, car je ne sais pas comment faire de recherche, du moins comment formuler ce problème.

    Je vous explique :

    J'ai 2 cadres TFramePo et TFrameStructSoc que je souhaite afficher dans des onglet.

    Voici le 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
     
    procedure TFormPrincipale.FormCreate(Sender: TObject);
    var
    i:integer;
     
    begin
    Controle[0]:=TFramePo.Create(FormPrincipale);// j'ai changé les Owner et ça ne change rien
    Controle[0].Name:='momo';
    Controle[1]:=TFrameStructSoc.Create(self);
     
    Controle[2]:=TFramePo.Create(self);
    OldControl:=0;
    Controle[0].Enabled:=true;
    for I := 0 to 2 do
      begin
        PageControl1.InsertControl(Controle[i]);
        Controle[i].Hide;
      end;
    Controle[0].Show;
    end;
    Et au changement d'onglet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TFormPrincipale.TabControl1Change(Sender: TObject);
    var
    i:integer;
    begin
    Caption:=IntToStr(TabControl1.TabIndex);
    Controle[OldControl].hide;
    Controle[TabControl1.TabIndex].Show;
    OldControl:=TabControl1.TabIndex;
    end;
    La chase particulière est que tout fonctionne bien tant que dans les TFrames il n'y a pas de composant TMemo ou TRichEdit. Dans ce cas le TFrame ne s'affiche pas.
    Si j'ajoute un TMemo je dois faire un RemoveControle et un InsertControle pour qu'il s'affiche.

    J'ai du oublie quelque chose, mais quoi ....

  2. #2
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Pourquoi n'insères tu pas tes frames dans les TabSheets?
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  3. #3
    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 Linkin Voir le message
    Pourquoi n'insères tu pas tes frames dans les TabSheets?
    +1
    Effectivement, tu utilises un TTabControl en simulant le comportement d'un TPageControl.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci de vos réponses.

    Bien oui, mais je viens de passer de Delphi 5 à Delphi 2009 (je développais en Delphi 7 il y a 3 ans) et je suis un peu perdu dans cette nouvelle interface.

    Je ne retrouve pas les TTabSheets. où sont-ils ?

    Mais ce problème avec les TMemo je l'avais déjà eu avec d'autres choses.

    Visiblement avec ce type de composant il y a toujours un comportement particulier.

    Si non tant que je n'utilise pas de TMemo ou TRichEdit tout fonctionne à merveille.

  5. #5
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    En fait je viens de m'apercevoir que dans un code tu utilise un TabControl et dans l'autre un PageControl.

    Pour les TabSheet, en conception, il suffit de faire un clic droit, Nouvelle page.
    En exécution, un petit tour dans la FAQ:
    http://delphi.developpez.com/faq/?page=pagecontrol
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  6. #6
    Invité
    Invité(e)
    Par défaut
    Merci à tous, ça marche avec le TTabSheet.

    Ca faisait longtemps que j'avais plus fait de Delphi (+/- 1 ans) et je me suis un peu perdu.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Voilà j'en suis à nouveau au même problème.

    Je veux réunir ces TFrames sur une feuille principale à la volée et ça bloque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TFormPrincipale.FormCreate(Sender: TObject);
    var
    Signa:TFrameSignaletique;
    begin
    Signa:=TFrameSignaletique.Create(Panel1);
    Panel1.InsertControl(Signa);
     
     
    end;
    Rien n'est inséré et la fiche ne semble plus recevoir de message.

    Par contre si j'ajoute ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm1.FormCreate(Sender: TObject);
    var
    Signa:TFrameSignaletique;
    begin
    Signa:=TFrameSignaletique.Create(Panel1);
    Panel1.InsertControl(Signa);
    Panel1.RemoveControl(Signa);
    Panel1.InsertControl(Signa);
    end;
    Là ça fonctionne.

    Doit on y place un composant receveur sur la fiche ?
    Si oui lequel ?

  8. #8
    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,

    Tout simplement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    procedure TFormPrincipale.FormCreate(Sender: TObject);
    var
      Signa:TFrameSignaletique;
    begin
      Signa:=TFrameSignaletique.Create(Self);
      Signa.Parent := Panel1;
    end;
    Akim Merabet

  9. #9
    Invité
    Invité(e)
    Par défaut
    Merci

    Et oui tout simplement.

    J'ai tendance à tout compliquer depuis que je suis passé en Java.

    On oublie vite en 1 an

Discussions similaires

  1. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  2. Problème avec les apostrophes
    Par misterbillyboy dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/07/2003, 16h39
  3. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  4. []Problème avec les formulaires Outlook
    Par davidinfo dans le forum Outlook
    Réponses: 6
    Dernier message: 05/12/2002, 09h59
  5. Problème avec un TFrame
    Par mixi dans le forum Langage
    Réponses: 4
    Dernier message: 12/09/2002, 13h25

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