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

Langage Delphi Discussion :

variable system "state"


Sujet :

Langage Delphi

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    839
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 839
    Points : 262
    Points
    262
    Par défaut variable system "state"
    bonjour,

    je voudrais savoir a quoi correspond la variable system "STATE".

    J'ai récupérer un bout de code où cette variable est implémentée, mais je ne comprends pas comment cela fonctionne , car elle n'est déclarée nulle part ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure TForm1.AdvStringGrid1CheckBoxClick(Sender: TObject; ACol,
      ARow: Integer; State: Boolean);
    begin
      advstringgrid1.RowSelect[Arow] := State;
    end;
    merci

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 302
    Points
    11 302
    Billets dans le blog
    6
    Par défaut
    Je suppose que le paramètre State passé au Clic de cette CheckBox de la grille représente son état Checked : nom insuffisamment évocateur, pê ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Ah les exemples TMS, pratique mais flou
    Example 62 : Checkbox based disjunct row selection
    en fait le State de OnCheckboxClick] assez mal décrit dans ladocumentation PDF est l'équivalent du State de la fonction AddCheckBox
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    State est l'etat checked du checkbox


    cela évite de coder (avec un TCheckBox standard) ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TFormX.CheckBoxClick(Sender: TObject);
    begin
      if (Sender as TCheckBox).Checked then
        Afficher := (Sender as TCheckBox).Checked;
    end;
    En gros ça permet de s'absoudre d'appeler l'objet Sender ou l'objet CheckBoxN dans la procedure.

    C'est l'objet lui même, qui passe plus de paramètres dans son gestionnaire d'evenement.

    Analogue au OnDrawItem d'un TListBox par exemple ou l'on retrouve l'index de la ligne en cours de dessins, le Rect de cette zone de dessin et le status de l'item (focus, selected etc) ou encore au OnMouseMove des win-controles qui transmettent les valeurs X,Y du curseur de la souris.

    Tout est accessible par le Sender (quasi vital pour un gestionnaire d'evenement, mais pas obligatoire), pour permettre de coder plus vite, on peux passer divers autres paramètres dans le gestionnaire.

    Quand tu programmera tes propres composant tu te rendra vite compte que passer d'autre paramètre autre que le Sender permet d'augmenter la productivité de ton code.

    Ici, dans ton cas, le paramètre State est renvoyé par l'objet lui même, donc déclaré dans cet objet (précisement dans la déclaration du gestionnaire d'evenement suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TAdvStringGridCheckBoxClickEvent = procedure(Sender: TObject; ACol, ARow: integer; State: boolean) of object;
    Ce qui permet de ne pas se coltiner ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if AdvStringGrid1.Cell[a,b].CheckBox.Checked then
    mais de faire :
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/05/2009, 16h35

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