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 :

procedure pour bloquer des boutons


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Aos
    Aos est déconnecté
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Par défaut procedure pour bloquer des boutons
    Bonjour a tous,

    Par ce dimanche ensoleillé, j'èspere que quelques ames valeureuse se trouvent devant leur ordinateur .

    Je sais que pour bloquer un bouton en delphi, il y a monBouton.enable:=false;

    L'idée en faite, serait de faire une procedure qui bloque/debloque tout les boutons d'une fiche. J'ai pas d'idée du tout.

    Il me semble néanmoins qu'il y a une possibilités en passant scannant tout les elements d'une page, un machin genre "component", je sias c'est tres flou, je l'ai fais il y a longtemps

    Merci

  2. #2
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Par défaut

    Citation Envoyé par Aos
    Il me semble néanmoins qu'il y a une possibilités en passant scannant tout les elements d'une page, un machin genre "component", je sias c'est tres flou, je l'ai fais il y a longtemps

    Merci
    effectivement!
    chaque objet "possesseur" d'autres objets tient une liste des ceux ci avec sa propriété Components. une idée serait donc de parcourir ce tableau et de tester le type de chaque objet.
    exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.EtatBoutonsForm( bEtat : Boolean );
    var
      i:Integer;
    begin
      //parcourir tous les objets de la form
      for i:=0 to ComponentCount - 1 do
        //tester la classe de l'objet
        if Components[i] is TButton then
          //modifier sa propriété Enabled s'il s'agit d'un bouton
          TButton(Components[i]).Enabled := bEtat;
    end;
    voilà voilà ...

  3. #3
    Expert confirmé
    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 : 62
    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
    Par défaut
    Salut

    Une autre solution consisterais à associer tes boutons à une Action.

    Et dans le Update du TAction, tu places ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.Action1Update(Sender: TObject);
    begin
      TAction(Sender).Enabled := bEtat;
    end;
    @+ claudius

  4. #4
    Aos
    Aos est déconnecté
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Par défaut impeccable!
    Merci a tous, ça marche impeccable.

    Par contre, quand j'essaye de la crée en tant que procedure, ça me marque identificateur non declaré 'compononentCount' et "component".
    Si je place le code sur un bouton directement, ça marche impec.


    CLAUDIUS, je ne connais pas se genre de methode, jamais vu/utiliser donc si tu pouvais m'en dire un peu plus ou me dirigier vers un cours/tuts

    Merci

    ci dessous l'exemple de procedure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure etatButton(sender : TObject;bEtat : Boolean);
    var
      i:Integer;
    begin
      //parcourir tous les objets de la form
      for i:=0 to ComponentCount - 1 do
        //tester la classe de l'objet
        if Components[i] is TButton then
          //modifier sa propriété Enabled s'il s'agit d'un bouton
          TButton(Components[i]).Enabled := bEtat;
    end;

  5. #5
    Expert confirmé
    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 : 62
    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
    Par défaut
    Re,

    Parmi les exemples fournit avec Delphi (pour ma part D7) tu as un exemple d'utilisation des actions (avec un TActionList).
    Tu peux y jeter un coup d'oeil.

    Dans le principe tu crées une action, tu lui définis ce quelle doit faire (OnExecute) et quand l'action est disponible (OnUpdate).

    Maintenant tu relies tes contrôles à ton action (Boutons, Eléments de menu, bouton de barre d'outils,...).

    Lorsque l'action n'est pas disponible, tous les contrôles qui lui sont associés sont grisés. Pratique car centralisé !!!

    @+ Claudius

  6. #6
    Aos
    Aos est déconnecté
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Par défaut
    aaaaaaaaaaaah ok.

    Ah oui c'est pas mal du tout

    Merci en tout cas

  7. #7
    Membre chevronné
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Par défaut
    re
    tu peux par exemple faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure DisableTousLesBouton(Sender: TObject);
    var
    i       : integer;
    begin     
        For i:=0 to sender.ComponentCount-1 do 
          if Components[i] is Tbutton Then
            Tbutton (Components[i]).enabled := false;
    end;
    et ensuite l'appeler à partir d'une autre procédure par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DisableTousLesBouton(Form2); // ou tout autre objet, panel par exemple
    à plus

  8. #8
    Aos
    Aos est déconnecté
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Par défaut
    ah je pensais que ça marcherait mais finalement ça ne marche pas
    Il me mets toujours la meme erreur. Identifcateur non declaré "componentcount" et components

  9. #9
    Membre chevronné
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Par défaut
    bonjour
    c'est vrai il fait très beau!

    essayer quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    var
    i       : integer;
    begin     
        For i:=0 to ComponentCount-1 do 
          if Components[i] is Tbutton Then
            Tbutton (Components[i]).enabled := false;
    end;
    à plus

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

Discussions similaires

  1. Regrouper les procédure pour appeler des boutons
    Par Nanit6 dans le forum Excel
    Réponses: 11
    Dernier message: 09/08/2007, 10h35
  2. variable globale pour griser des boutons de commande
    Par ben5985 dans le forum Access
    Réponses: 5
    Dernier message: 24/11/2006, 11h34
  3. Site pour télécharger des boutons
    Par joquetino dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 20/06/2006, 11h25
  4. Réponses: 7
    Dernier message: 17/05/2006, 14h49
  5. utiliser des morceaux d'une image pour faire des boutons
    Par Battosaiii dans le forum Interfaces Graphiques en Java
    Réponses: 7
    Dernier message: 14/12/2005, 00h05

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