Gestion de cases à cocher personnalisées dans un stringgrid

Soyez le premier à donner votre avis sur cette source.

Vue 7 612 fois - Téléchargée 1 571 fois

Description

Ce code permet :
1. D'intégrer des cases à cocher personnalisées dans un composant StringGrid
2. De définir les cases à dessiner pour chaque ligne du fichier (contexte)
3. D'identifier les cases qui ont été cochées
4. De gérer la taille de la fenêtre d'édition en fonction de quatre paramètres :
- Nombre de lignes en provenance d'un fichier log par exemple
- Hauteur des lignes
- Epaisseur des Interlignes
- Hauteur de la fenêtre d'édition (nb de lignes visibles)
La taille de la fenêtre d'édition a une taille limitée ce qui implique une
gestion du scrollbarre et des Régions de sélection des clics souris
5. Mise en évidence des sélections (propriétés options en particulier
l'option goRowSelect qui permet de mettre en brillance la sélection
d'une ligne

Source / Exemple :


Tout est dans le zip
L'évènement central de ce code est l'évènement StringGrid1DrawCell(...) du composant StringGrid
J'ai repris la base sur le code d'un internaute (je ne sais plus qui) d'un autre site

Conclusion :


Le principe de ce code est utile à bien des égards.
Ce Code est améliorable encore.
En particulier, je n'ai pas réussi à modifier la couleur d'une ligne sélectionnée, ce qui me renvoie à un autre source sur les couleurs système que j'ai toujours en réserve pour publication.
Il y aura sans doute des mises à jour car son principe est intégré dans un projet perso.
Merci pour vos remarques

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_Jean_Jean
Messages postés
637
Date d'inscription
dimanche 13 août 2006
Statut
Membre
Dernière intervention
13 décembre 2018
2 -
@ Cirec.
En effet, DrawFrameControl semble intéressant et plus optimal pour des marques traditionnelles; plus universel aussi sur toutes sortes de controles. Par contre pour des graphismes spécifiques (la méthode du listImage me sembleplus intéressant.
@ AscciDeFond.
Ton source est-il de toi? Tu as du t'inspirer du la même que moi car je suis sûr que ça n'est pas sur DelphiFr que je l'avais vu. Il y a de nombreux snippets un peu partout!
C'est vrai que l'on ne réinvente pas la roue, ce quine nous empêche pas defaire preuve de créativité.
Merci pour vos remarques.
Cirec
Messages postés
3810
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
9 décembre 2019
34 -
Salut,

pour dessiner les boutons checkbox et autres controles regarde du coté de DrawFrameControl :
http://msdn.microsoft.com/en-us/library/dd162480(VS.85).aspx
c'est beaucoup plus simple et complet ;)
cs_Jean_Jean
Messages postés
637
Date d'inscription
dimanche 13 août 2006
Statut
Membre
Dernière intervention
13 décembre 2018
2 -
Merci Asciidefond pour ton commentaire!
En fait, j'ai trouvé pour les couleurs.
j'avais mis with StringGrid1 do Canvas.Brush.Style := bsClear; ce qui empêche évidemment l'attribution d'autres couleurs.
On peut donc faire par exemple pour augmenter la visibilité des lignes une couleur pour les lignes paires et une autre pour les lignes impairs.

Donc dans le DrawCell...
With StringGrid1.Canvas Do
Begin
If gdSelected In State
Then Brush.Color := clNavy // sélection
Else If Odd(ARow) then Brush.Color := Clyellow
else Brush.Color := ClSilver;
...
End
...
Je regarderai quand même tes liens...
J'attends de perfectionner un peu le source pour le republier

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.