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

Lazarus Pascal Discussion :

[TTabSheet] Masquer onglet, mais afficher contenu


Sujet :

Lazarus Pascal

  1. #1
    Invité
    Invité(e)
    Par défaut [TTabSheet] Masquer onglet, mais afficher contenu
    Bonjour,

    J'utilise avec Delphi la méthode de la FAQ pour masquer un onglet, mais afficher le contenu (FAQ : Masquer un onglet).

    Je viens de constater que cela ne fonctionnait pas avec Lazarus. j'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      tab := PageControl1.ActivePage;
      tab.TabVisible := (PageControl1.PageCount > 1);
      tab.Visible := True;
    Y'a t'il un moyen de le faire autrement avec Lazarus, je n'ai rien trouvé ?

    Merci d'avance.
    Dernière modification par Invité ; 08/05/2017 à 13h18.

  2. #2
    Membre chevronné

    Homme Profil pro
    au repos
    Inscrit en
    Février 2014
    Messages
    429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2014
    Messages : 429
    Points : 1 884
    Points
    1 884
    Par défaut
    Bonjour.

    Masquer un onglet, mais afficher le contenu ?

    Cela marche sous Delphi ?

    Outre le fait que je n'en vois pas trop l'intérêt, ce n'est pas possible sous Lazarus, la propriété Visible n'étant pas efficiente dans un TabSheet.
    Pour preuve, dans le fichier tabsheet.inc, on trouve :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RegisterPropertyToSkip(TTabSheet, 'Visible', 'Use TabVisible instead.', '');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TabSheet1.Visible:= false; // ne marche pas
     TabSheet1.TabVisible:= false // ok
    Cordialement
    Thierry

  3. #3
    Invité
    Invité(e)
    Par défaut
    oui, cela fonctionne avec delphi, c'est dans la faq, j'ai remis le lien dans mon premier post.
    dommage, que cela ne fonctionne pas avec lazarus.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 248
    Points : 538
    Points
    538
    Par défaut
    Bonjour,

    Bizarre, avec Lazarus 1.9 (trunk) sous W10, en décochant la propriété TabVisible du TTabSheet dans l'IDE, l'onglet ne s'affiche pas lors de l'exécution (mais la page s'affiche) .
    Êtes-vous sûr que votre code est exécuté? Dans quel event?

    André

  5. #5
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 794
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 794
    Points : 13 470
    Points
    13 470
    Par défaut
    Oui c'est possible sous Delphi. TabVisible := FALSE masque dans un premier temps l'onglet et la page et on ré-affiche la page en la sélectionnant par PageControl1.ActivePageIndex.

    Ca permet de conserver la logique d'un PageControl tout en remplaçant les "onglets" par des boutons. Par exemple un TCategoryButton posé sur un TSplitView qui permet d'afficher à choix des icônes ou des icônes plus textes à la façon d'un Outlook Windows 10.

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

    J'ai fais des tests, mais je n'ai pas réussi à faire apparaire le contenu sans l'onglet.
    J'ai essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       tab := PageControl1.ActivePage;
       tab.TabVisible := False;
       tab.Visible := True;
       PageControl1.ActivePage := tab;
       // ou
       PageControl1.ActivePageIndex := 0;

Discussions similaires

  1. [XL-2007] Masquer le ruban mais afficher la barre d'outil d'accès rapide
    Par Framé34 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/03/2016, 14h32
  2. [TabContainer]Cacher un onglet mais pas son contenu
    Par Spellbinder dans le forum ASP.NET Ajax
    Réponses: 2
    Dernier message: 10/05/2011, 15h46
  3. [AC-2007] Ne pas afficher la clé, mais le contenu + Option "= Max()"
    Par Crachover dans le forum IHM
    Réponses: 1
    Dernier message: 19/01/2010, 12h24
  4. Réponses: 3
    Dernier message: 24/07/2007, 21h27
  5. Une cellule sans contenu mais affichée quand même?
    Par petozak dans le forum Balisage (X)HTML et validation W3C
    Réponses: 30
    Dernier message: 30/08/2006, 18h19

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