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 :

TabSheet avec enabled à false ne marche pas?


Sujet :

Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Points : 74
    Points
    74
    Par défaut TabSheet avec enabled à false ne marche pas?
    Bonjour,

    j'ai un pageControl avec 3 tabSheet.

    J'essaie d'en mettre un à enabled:=false mais ça ne marche pas???

    Il y a un bug?

    Cordialement

  2. #2
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 291
    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 291
    Points : 1 942
    Points
    1 942
    Par défaut
    Que veux-tu faire?

    Le désactiver au niveau des actions faites dessus ou le cacher?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    je cherche à désactiver le tabSheet3 pendant une saisie sur le tabSheet1

    Cordialement

  4. #4
    Membre émérite Avatar de Cpt Anderson
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 625
    Points : 2 479
    Points
    2 479
    Par défaut
    désactivé, c'est à dire empecher de passer d'un onglet à l'autre, c'est ca ?

  5. #5
    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
    Salut

    Citation Envoyé par codial
    je cherche à désactiver le tabSheet3 pendant une saisie sur le tabSheet1
    Le fait de mettre la propriété Enabled à False d'un TabSheet n'interdit pas la possibilité de sélectionner cette page. Par contre les contrôles contenus dans cette page sont inaccessibles.

    Donc si je comprends bien, tes 3 TabSheets sont en permanence visibles et tu souhaites contrôler (autoriser/interdire) la sélection du TabSheet3.

    C'est ça ?

    [edit] Yep, le Captain se pose la même question ! [/edit]

    @+

  6. #6
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 291
    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 291
    Points : 1 942
    Points
    1 942
    Par défaut
    Enabled interdit juste les actions sur le tabsheet.

    Autrement il faut jouer sur les evenement changing (pour avoir le tabsheet de départ) et change pour avoir celui d'arrivée (et donc revenir à celui de départ si celui d'arrivée est désactivé).

    Il va y avoir un clignotement mais je ne vois pas d'autre solution.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    Oui pendant la saisie sur le TabSheet1 je voudrais empécher d'activer le TabSheet3 en interdisant le clic sur l'onglet.

    Cordialement

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

    Alors tu peux faire ça. Dans l'évènement OnChanging tu récupère l'onglet sur lequel tu viens de cliquer et tu autorises le changement d'onglet uniquement si la propriété Enabled du TabSheet cible est à True.

    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
     
    uses
      CommCtrl;
     
    function TForm1.GetTabAt(const X, Y: Integer): TTabSheet;
    var
      HitTestInfo: TTCHitTestInfo;
      ATabIndex: Integer;
    begin
      HitTestInfo.pt := Point(X,Y);
      ATabIndex := SendMessage(PageControl1.Handle, TCM_HITTEST, 0, Longint(@HitTestInfo));
      result := PageControl1.Pages[ATabIndex];
    end;
     
    procedure TForm1.PageControl1Changing(Sender: TObject;
      var AllowChange: Boolean);
    var
      APoint: TPoint;
    begin
      GetCursorPos(APoint);
      APoint := TPageControl(Sender).ScreenToClient(APoint);
      AllowChange := GetTabAt(APoint.X, APoint.Y).Enabled;
    end;
    @+ Claudius

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    super ça marche

    merci à tous et à Cl@udius pour son code.

    Cordialement

Discussions similaires

  1. Comment compiler en 64 bits avec gcc, -m64 ne marche pas.
    Par jeanlouis_lecodeur dans le forum GCC
    Réponses: 1
    Dernier message: 27/02/2008, 17h40
  2. textbox avec Enabled="false"
    Par salsero1 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 07/02/2008, 11h58
  3. [.NET 2 C#] EnabledViewstate=false ne marche pas
    Par gdkenny dans le forum ASP.NET
    Réponses: 9
    Dernier message: 28/06/2007, 10h53
  4. aperçu d image avec input type file marche pas dans ffx
    Par siddh dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/11/2005, 09h11
  5. [VB.NET] ForeColor d'un control avec Enabled=False
    Par jennings dans le forum Windows Forms
    Réponses: 2
    Dernier message: 06/12/2004, 14h41

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