Je veux mettre un tcheckbox code> à l'intérieur d'un
tstringgrid code> dans Delphi dans toutes les cellules de certaines colonnes. J'utilise Delphi Xe. P>
3 Réponses :
N'essayez pas de placer un TCHeckBox Code> Contrôle à l'intérieur d'un
TStringGrid code>. Utilisez l'événement
ONDRAWCELL CODE> de la grille avec l'API Win32
Drawframecontrol () CODE> Fonction, pour dessiner une image d'une commande de case à cocher à l'intérieur de chaque cellule au besoin. Vous pouvez utiliser le
onclick / Onmouse ... code> événements avec les objets
de la grille [] [] [] code> pour garder une trace de l'état vérifié de chaque cellule au besoin. Je trouve que cela est beaucoup plus facile à gérer, car
tstringgrid code> n'a pas été conçu pour accueillir de vrais contrôles. P>
Vous devez dessiner vos propres cases à cocher, de préférence à l'aide de thèmes visuels, si activé. C'est un croquis simple de la façon de faire: bien sûr, dans un scénario réel, le tableau code> coché code> n'est pas une constante et que vous pourriez souhaiter Enregistrez le Ce qui manque ici est une fonction pour alter em> l'état des cases à cocher. Vous voudrez probablement basculer l'état dans un EDIT par Bleuâtre: S code> métrique et
h code> Poignée de thème entre les événements de peinture cellulaire. Mais le principe est ici. P>
p>
onclick code> gestionnaire. Si vous êtes vraiment sérieux, vous souhaiterez également répondre au mouvement de la souris et afficher l'effet de la souris sur les cases sur les cases à cocher si des thèmes sont disponibles. P>
invalider la méthode code>. p> p>
Andreas voudriez-vous vous déranger si j'ai emprunté ce code et je l'ai mis dans la grille de chaîne JVCl? Ce serait un bel addition.
@Warren P: N'hésitez pas à utiliser le code comme vous le souhaitez. @Ken: Désolé, je n'ai pas pu résister!
merci, cela fonctionne et il sera bon d'avoir ceci sur la grille JVCl
@Andreasrejbrand Si nous voulons gérer votre propre ONCLICK, cela signifie-t-il que nous voulons répéter cette procédure, ou quoi? Comment pouvons-nous vérifier le statut du thème dessiné? Donnez-moi un indice s'il vous plaît.
@Andreasrejbrand Merci pour cette impressionnante solution. ∞ + 1
J'utilise une grille virtuelle appelée ExgramView par Roman Mochalov, qui prend en charge les cases à cocher. P>
Ma propre fourchette modifiée de GridView, portée pour Unicode, etc., nommée Texgridview, au lieu de TGridView, et avec une démonstration de cases à cocher est sur Bitbucket ICI AS / WPOSTMA / EXGRIDView. P>
Le composant ExgridView a une propriété Cochez la case dans l'inspecteur de propriétés, qui doit être défini sur TRUE, puis vous devez configurer vos propriétés de colonne afin que la colonne dispose d'un type de case à cocher défini sur la case à cocher ou la touche radio. Ensuite, vous devez mettre en œuvre le rappel d'événement GetCheckstate. Voir la démo incluse sur le projet BitBucket. P>
La source d'origine pour ce code était ici mais ce n'est pas construire sur des versions récentes. Ma version Bitbucket est testée et travaille avec Delphi 2007, 2009 et toutes les versions à jour à compter de 2016 (Delphi 10 Seattle). P>
p>
Comment puis-je ajouter la case à cocher sur une grille de l'ExgramView de Roman Mochalov ???
@Warrenp je travaille avec le TMS advstringgrid, mais cela prend-il en charge l'état grisé de ses cases à cocher (je ne le pense pas)? Comment puis-je gérer ma coche-case grise? Puis-je la colorer d'une manière ou d'une autre?
Pourquoi ne pas demander à TMS? Ils soutiennent très bien leurs trucs.