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

C++Builder Discussion :

Pagecontrol et Tabsheet


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Profil pro
    Concepteur traitement de signal
    Inscrit en
    Ao�t 2004
    Messages
    192
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activit� : Concepteur traitement de signal
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 192
    Par d�faut Pagecontrol et Tabsheet
    Bonjour !

    J'ai un petit souci....
    J'ai dans ma Form un control PageControl avec plusieurs TabSheets, disons TabSheet1 et TabSheet2
    J'aimerais qu'en cliquant sur TabSheet2, si une certaine condition est remplie, que celle-ci ne s'affiche pas mais qu'on reste put�t sur TabSheet1.

    J'ai essay� �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void __fastcall TForm1::TabSheet2Enter(TObject *Sender)
    {
        if(condition) {
          PageControl1->ActivePage = TabSheet1;
          TabSheet1->Show();
          MessageBox(Handle,"marche pas","Avertissement",MB_OKCANCEL|MB_ICONSTOP ) ;
          return;
        }
        else {
    .....
    Le message s'affiche bien lorsque la condition est remplie, mais malheureusement, je reste sur la TabSheet2. J'arrive pas � revenir sur la TabSheet1...

    Des id�es ?? Merci beaucoup !

  2. #2
    Membre confirm�
    Profil pro
    Concepteur traitement de signal
    Inscrit en
    Ao�t 2004
    Messages
    192
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activit� : Concepteur traitement de signal
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 192
    Par d�faut
    Juste pour pr�ciser les choses...

    ce n'est pas en fait la fonction "TabSheet2Enter" mais la fonction "TabSheet2Show" que j'utilise. D�sol� pour l'erreur.
    J'ai essay� de faire la m�me chose cependant avec "TabSheet2Enter" et l� c'est pire, je n'entre m�me pas dans ma routine ?!

  3. #3
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Normalement le fait d'assigner ton TabSheet1 � la propri�t� ActivePage est suffisant, pas besoin de faire le Show en plus.

  4. #4
    Membre confirm�
    Profil pro
    Concepteur traitement de signal
    Inscrit en
    Ao�t 2004
    Messages
    192
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activit� : Concepteur traitement de signal
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 192
    Par d�faut
    Pottiez....
    c'est bien ce que je pensais, mais malheureusement �a ne marche pas !

    Du coup j'ai essay� de mettre un bouton sur ma Form avec la m�me commande que j'ai �crite... et �a marche Je comprends plus rien.

    La question que je me pose : �tant donn� que � la propri�t� ActivePage est appel�e lorsque je clique sur une tab, donc quand l'�v�nement OnShow est d�tect�, je me demande si l'affichage de la tab n'est pas forc� ??

    Par ailleurs, j'ai tent� �a aussi :

    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
     
    void __fastcall TForm1::TabSheet2Enter(TObject *Sender)
    {
        if() {
          PageControl1->ActivePage = TabSheet1;
          TabSheet2->Hide();
          TabSheet1->Show();
          PageControl1->Repaint();
          MessageBox(Handle,"La table est vide !","Avertissement",MB_OKCANCEL|MB_ICONSTOP ) ;
          PageControl1->ActivePage = TabSheet1;
          TabSheet2->Hide();
          TabSheet1->Show();
          PageControl1->Repaint();
          return;
        }
        else {
    ...
    histoire d'�tre bien sur qu'on affiche pas la TabSheet2 et qu'on ne montre que la TabSheet1...
    R�sultat : La TabSheet2 n'appara�t pas, la 1 reste apparente, la boite de message s'affiche, mais l�, une fois que la boite de message dispara�t, la TabSheet2 est activ�e ! J'y comprends plus rien.

  5. #5
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Ca doit �tre parce qu'il active les page apr�s les �v�nements, certain �v�nement se produisent avant l'action et d'autre apr�s, c'est sp�cifi� dans l'aide normalement.

  6. #6
    Membre confirm�
    Profil pro
    Concepteur traitement de signal
    Inscrit en
    Ao�t 2004
    Messages
    192
    D�tails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activit� : Concepteur traitement de signal
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 192
    Par d�faut
    Bon ben je crois que j'ai trouv� ma solution, merci le forum JBuilder

    Alors plut�t que de mettre ma condition dans l'appel du TabSheetShow(), j'ai utilis� les �v�nements de la PageControl :

    PageControl->OnChanging et PageControl->OnChange

    Mais l� encore il a fallu que je multiplie les conditions, c'est-�-dire que je mette ma condition dans le OnChanging et le OnChange, et comme �a suffisait pas, il a fallu aussi que je mette la condition dans le TabSheet->OnShow() puisque je me suis aper�u que celle-ci �tait lanc�e m�me si la table n'�tait pas active !

    Bref �a fait un peu lourd, c'est surement juste du patchage, mais �a marche. J'avoue c'est pas ce qu'il y a de plus �l�gant, mais j'ai vraiment pas trouv� d'autre solution....

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Colorer pagecontrole et tabsheet
    Par bekomolla dans le forum D�buter
    R�ponses: 1
    Dernier message: 27/01/2014, 09h19
  2. pagecontrol avec tabsheet dynamique
    Par numeror dans le forum D�buter
    R�ponses: 2
    Dernier message: 04/06/2009, 11h37
  3. Font color d'une PageControl ou d'un TabSheet
    Par SpIrIt505050 dans le forum D�buter
    R�ponses: 2
    Dernier message: 30/11/2008, 21h22
  4. Redessiner un tabsheet d'un pagecontrol
    Par rvzip64 dans le forum Delphi
    R�ponses: 1
    Dernier message: 07/09/2006, 21h10
  5. R�ponses: 3
    Dernier message: 17/08/2006, 12h03

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