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 :

[D7]Désactiver tous les contrôles de ma fiche


Sujet :

Delphi

  1. #1
    Membre régulier Avatar de dleu
    Profil pro
    Inscrit en
    Août 2004
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 169
    Points : 77
    Points
    77
    Par défaut [D7]Désactiver tous les contrôles de ma fiche
    Bonjour,

    j'ai une petite question : y a-t'il un moyen simple pour désactiver tous les contrôles d'une fiche sans mettre à False la propriété enabled de chaque contrôle un à un ?

    Je m'explique : ma fiche comporte un grand nombre de boutons et d'édits et écrire une procédure qui les inactive tous, les uns après les autres, me paraît fastidieux et pas très propre.

    Est-ce qu'une boucle qui "scannerait" tous les contrôles de la fiche conviendrait ? Comment pourrais-je réaliser cela ?

    Merci pour votre aide.

    Didier

    ɹəᴉpᴉp

  2. #2
    Membre averti
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Points : 436
    Points
    436
    Par défaut
    Citation Envoyé par dleu
    Bonjour,

    j'ai une petite question : y a-t'il un moyen simple pour désactiver tous les contrôles d'une fiche sans mettre à False la propriété enabled de chaque contrôle un à un ?

    Je m'explique : ma fiche comporte un grand nombre de boutons et d'édits et écrire une procédure qui les inactive tous, les uns après les autres, me paraît fastidieux et pas très propre.

    Est-ce qu'une boucle qui "scannerait" tous les contrôles de la fiche conviendrait ? Comment pourrais-je réaliser cela ?

    Merci pour votre aide.

    Didier
    2 secondes montre en main : tu mets tous tes controles dans un Tpanel. Et tu mets la propriété enabled de ton TPanel à false.

    Voili voilou
    c'est pas simple la vie ?
    PpPool

  3. #3
    Membre régulier Avatar de dleu
    Profil pro
    Inscrit en
    Août 2004
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 169
    Points : 77
    Points
    77
    Par défaut
    Citation Envoyé par PpPool
    2 secondes montre en main : tu mets tous tes controles dans un Tpanel. Et tu mets la propriété enabled de ton TPanel à false.

    Voili voilou
    c'est pas simple la vie ?
    C'est tellement évident que j'en reste pantois.

    Merci.

    ɹəᴉpᴉp

  4. #4
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    Dans un Panel, les contrôles seront inaccessibles mais pas grisés.

    On peut donc faire une petite boucle :

    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
    procedure desactiverControles(ctrl : TWinControl);
    var
     i : integer;
    begin
      for i := 0 to ctrl.ControlCount - 1 do
      begin
        // appel récursif afin de traiter les contrôles détenus par le contrôle[i]
        if (ctrl.Controls[i] is TWinControl) then
          desactiverControles(ctrl.Controls[i] as TWinControl);
        ctrl.Controls[i].Enabled := false;
      end;
    end;
     
    // utilisation :
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      desactiverControles(self);
    end;
    Bloon
    A lire : Les règles du club
    Delphi : La FAQ - Articles

  5. #5
    Membre régulier Avatar de dleu
    Profil pro
    Inscrit en
    Août 2004
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2004
    Messages : 169
    Points : 77
    Points
    77
    Par défaut
    Merci Bloon.

    C'est effectivement à un truc comme ça auquel je pensais en posant ma question. Une boucle de ce genre permet de laisser un contrôle actif et d'inactiver tous les autres ce qui correspond plus à ce que je cherchais que le panel.

    A+

    ɹəᴉpᴉp

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/02/2014, 09h38
  2. Comment lister tous les composants d'une fiche ?
    Par tipiweb dans le forum Langage
    Réponses: 2
    Dernier message: 18/01/2006, 21h53
  3. Comment accéder tous les ComboBox dans ma fiche
    Par Xavier dans le forum C++Builder
    Réponses: 8
    Dernier message: 04/11/2005, 20h41
  4. Réponses: 2
    Dernier message: 01/06/2005, 12h13
  5. Réponses: 1
    Dernier message: 27/10/2004, 15h36

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