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 :

PageControl , TTabSheet est Frame


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2012
    Messages : 142
    Points : 80
    Points
    80
    Par défaut PageControl , TTabSheet est Frame
    Bonjour a tous ,

    Je développe un I.R.C personnel.

    Voila un problème m'oppose pour chaque client qui envoie un message en privé, je créer une nouvelle page de discutions ( TTabSheet + Frame ) Caption de la page créer le pseudo du client

    Composant du frame (RichEdit pour la réception des messages du client est un edit pour l'envoie d'un message.

    Maintenant je cherche comme faire pour envoyer les messages reçus dans la bonne page (PageControl) Je n’arrive pas a accéder a mais composant du Frame (RichEdit)


    Un grand merci pour votre réponse est le temps consacré a mon petit problème
    Il n'existe guère de problèmes sans solution, et parfois l'absence de solution décourage le problème

  2. #2
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut Pour plus d'information
    Bonjour,

    Si tu peux nous envoyer un petit exemple, cela pour nous aider à te répondre.

    Cordialement

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2012
    Messages : 142
    Points : 80
    Points
    80
    Par défaut PageControl , TTabSheet est Frame
    Exemple message privé exemple : ah GregOry (Tout les clients son lister dans une listbox)

    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
    procedure TForm1.ListBox1DblClick(Sender: TObject);
    var  
      Client: TTabSheet;
      I,Page: Integer; 
    begin
       for I := 0 to ListBox1.items.count do
        if ListBox1.Selected[I] = True then
        begin  // On contrôle si la page n’existe pas
           for Page := 0 to PageControl1.count do
              if PageControl1.Pages[Page].Caption <> ListBox1.items.Strings[I] then // On créer la Page
               begin
                  Client := TTabSheet.Create(Self);  
                  with TFrame2.Create(self) do  
                    begin   
                       Name := ListBox1.items.Strings[I];  
                       Align := alClient;  
                       Parent := Client;  
                    end;  
     
             Client.PageControl := PageControl1;  
             Client.Caption := ListBox1.items.Strings[I]; 
        end;
    end;
    // Pour l'envoie du message cela se passe dans le frame;

    Se code est le méme que pour la reception des messages exemple si GregOry m'envoie un message alors affiche le message dans la page créer ou déja existant (Frame : RichEdit) c'est la est mon problème je n'arrive pas a communiquer avec mon frame
    Il n'existe guère de problèmes sans solution, et parfois l'absence de solution décourage le problème

  4. #4
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut un début de réponse
    A Corriger
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       ...
       for I := 0 to ListBox1.items.count do
       ...
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       ...
       for I := 0 to ListBox1.items.count-1 do
       ...
    Pour retrouver ton frame
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
       ...
    var
      aFrame : TFrame2
    begin
      aFrame := TFrame2 (Form1.FindComponent(ListBox1.items.Strings[I])) ;
       ...

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2012
    Messages : 142
    Points : 80
    Points
    80
    Par défaut Je n'arrive pas a communiquer avec mon frame
    {Créer une nouvelle page}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TForm1.Button1Click(Sender: TObject);
      var
      Client : TTabSheet;
    begin
      Client := TTabSheet.Create(Self);
      with TFrame1.Create(nil) do
      begin
        Name := 'Client' + intToStr(PageControl1.PageCount);
        Align := alClient;
        Parent := Client;
      end;
      Client.PageControl := PageControl1;
      Client.Caption := 'Client' + intToStr(PageControl1.PageCount);
    end;
    {Décharge le frame}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.PageControl1CloseBtnClick(Sender: TComponent; TabIndex: Integer; var CanClose: Boolean;
      var Action: TacCloseAction);
    begin
      Sender.FindComponent('Client' + Inttostr(TabIndex)).Free;
    end;
    {Envoie du texte dans le client3}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.Button2Click(Sender: TObject);
    var
     Frame : TFrame1;
    begin
      Frame := TFrame1 (FindComponent('Client3'));
      Frame.sRichEdit1.Text := 'Message Client3';
    end;
    // Erreur
    Il n'existe guère de problèmes sans solution, et parfois l'absence de solution décourage le problème

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Juin 2012
    Messages : 142
    Points : 80
    Points
    80
    Par défaut Envoie du texte dans le client3
    Il n'existe guère de problèmes sans solution, et parfois l'absence de solution décourage le problème

  7. #7
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 496
    Points : 2 762
    Points
    2 762
    Billets dans le blog
    10
    Par défaut Code corrigé
    Bonne lecture
    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
     
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Client: TTabSheet;
    begin
      Client := TTabSheet.Create(Self);
      Client.PageControl := PageControl1;
      Client.Caption := 'Client' + intToStr(PageControl1.PageCount);
      with TFrame1.Create(Self) do
      begin
        Name := 'Client' + intToStr(PageControl1.PageCount);
        Align := alClient;
        Parent := Client;
      end;
    end;
     
    procedure TForm1.Button2Click(Sender: TObject);
    var
      Frame : TFrame1;
      Client: TTabSheet;
    begin
      Frame := TFrame1 (FindComponent('Client3'));
      Client := Frame.parent as TTabSheet ;
      PageControl1.ActivePage := Client ;
      Frame.sRichEdit1.Text := 'Message Client3';
    end;
     
    procedure TForm1.Button3Click(Sender: TObject);
    var
      Frame : TFrame1;
      Client: TTabSheet;
    begin
      Frame := TFrame1 (FindComponent('Client3'));
      Client := Frame.parent as TTabSheet ;
      PageControl1.ActivePage := Client ;
      Frame.Free ;
      // Eventuellement Client.Free ;
    end;

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

Discussions similaires

  1. [frame]est ce que s'est bien fait ?
    Par paterson dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/08/2006, 17h37
  2. menu actif surligné lorsqu'il est dans une frame
    Par vertalan dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/06/2006, 15h38
  3. Détecter qu'une page HTML est ouverte dans une frame
    Par Pigoulou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/01/2006, 14h07
  4. [javascript]Savoir quand une frame est chargée
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/08/2005, 09h18
  5. qu'est ce qu'une frame?
    Par vincetrader dans le forum Développement
    Réponses: 3
    Dernier message: 25/02/2004, 11h24

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