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

Composants VCL Delphi Discussion :

[D6][TValueListEditor] Modifier l'affichage d'une cellule


Sujet :

Composants VCL Delphi

  1. #1
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 672
    Points : 7 048
    Points
    7 048
    Par défaut [D6][TValueListEditor] Modifier l'affichage d'une cellule
    Dans un TValueListEditor, comment modifier l'affichage d'une cellule ?

    J'ai essayé d'utiliser l'évènement OnDrawCell, mais avec DefaultDrawing à True, ca ne fait rien (ça ne modifie pas l'affichage); Et avec DefaultDrawing à False, ça n'affiche plus rien.

    Comment s'utilise cet évènement ?
    Merci.

  2. #2
    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

    ValueListEditor se comporte comme un StringGrid ou DrawGrid.

    Un exemple bateau: alternance de la couleur de fond ligne paire/impaire:
    Avec DefaultDrawing à 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
     
    procedure TForm1.ValueListEditor1DrawCell(Sender: TObject; ACol,
      ARow: Integer; Rect: TRect; State: TGridDrawState);
    var
      MyRect: TRect;
    begin
      if [gdSelected, gdFixed] * State <> [] then Exit;
     
      MyRect := Classes.Rect(Rect.Left + 2, Rect.Top, Rect.Right, Rect.Bottom);
      with TValueListEditor(Sender) do
      begin
        if Odd(ARow) then
          Canvas.Brush.Color := clBtnFace
        else
          Canvas.Brush.Color := clWindow;
        Canvas.FillRect(Rect);
        DrawText(Canvas.Handle, PChar(Cells[ACol,ARow]), -1, MyRect,
                 DT_SINGLELINE or DT_VCENTER);
      end;
    end;
    @+ Claudius

  3. #3
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 672
    Points : 7 048
    Points
    7 048
    Par défaut
    Bon, je teste et je te redis ....


  4. #4
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 672
    Points : 7 048
    Points
    7 048
    Par défaut
    Ca marche !


    Par contre, j'aimerai une petite exmplication sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if [gdSelected, gdFixed] * State <> [] then Exit;
    Je comprend en gros ce que ça fait, mais la syntaxe m'échappe ...

  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

    Le signe * est l'opérateur d'intersection entre 2 ensembles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      if [gdSelected, gdFixed] * State <> [] then Exit;
    En gros, si l'ensemble définit par l'intersection de State et [gsSelected, gdFixed] n'est pas un ensemble vide, alors...


    @+ Claudius

  6. #6
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 672
    Points : 7 048
    Points
    7 048
    Par défaut
    Ok.
    Je connaissais pas.


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

Discussions similaires

  1. Modifier la couleur d'une cellule dans un TValueListEditor
    Par Xpmich dans le forum Composants VCL
    Réponses: 2
    Dernier message: 13/02/2009, 08h10
  2. [POI]recuperer et modifier les données d'une cellule
    Par corbier32 dans le forum Documents
    Réponses: 5
    Dernier message: 04/05/2006, 10h41
  3. [Excel] Affichage d'une cellule ayant pour valeur 0
    Par repié dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/02/2006, 10h38
  4. Modifier l'affichage d'une requête
    Par seal dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/09/2005, 14h26
  5. Affichage d'une cellule excel
    Par cciocc dans le forum ASP
    Réponses: 2
    Dernier message: 17/05/2005, 10h17

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