TCYDBGRID (SANS INSTALLER OBLIGATOIREMENT)

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 - 22 avril 2008 à 19:00
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 - 22 juil. 2008 à 11:32
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/46427-tcydbgrid-sans-installer-obligatoirement

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
22 juil. 2008 à 11:32
Salut à tous,

les propriétés Col, LeftCol, Row, VisibleColCount et VisibleRowCount sont en déclaration "public" au lieu de "published" car il y avait une erreur en chargeant le projet si on avait pas dgIndicator dans la propriété options.

J' ai aussi ajouté les propriétés AllowDeleteRecord, AllowInsertRecord et AllowAppendRecord qui permettent d' éviter d' éliminer ou d' ajouter un enregistrement avec les touches de clavier.

Et moi qui pensait que j' en avait fini avec ce compo ^^

Je suis en train de travailler sur une nouvelle DBGrid qui va hériter de celle-ci, je vous laisse dans le mystère pour l' instant mais ça risque de plaire à pas mal de monde...

A+
Utilisateur anonyme
29 mai 2008 à 13:06
T'as pas l'impression de t'être perdu ?

Souvent les gens préfèrent dire que c'est nul alors qu'en fait ils ne comprennent pas et sont incapable de l'exprimer.

Je te le dit dans ton langage:
"T'ES ARCHI NULL"
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
28 mai 2008 à 19:45
T'ES ARCHI CONSTRUCTIF

t'en as d'autres comme çà?

je suis certain que MAURICIO se fera un plaisir de répondre à tes questions si en as.
par contre si tu as ici déroulé la totalité de tes compétences, n'hésite pas à répandre tes belles paroles ailleurs que sur CS

MERCI !!
abdounbrahim Messages postés 1 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 28 mai 2008
28 mai 2008 à 18:06
C'EST ARCHI NULL
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
30 avril 2008 à 17:21
Salut à tous!

juste un petit mot sur la mise à jour du compo:
- Ajout de la sous-propriété Margin dans la propriété CheckBoxes. Celle-ci vous permet de configurer l' espace en pixels entre le bord de la cellule et la CheckBox.
- Améliorations sur la procédure DrawColumnCell.
- Ajout de la fonction DefaultDrawCheckBox()
- Ajout de la propriété deafaultDrawingCheckBox et de l' événement OnDrawCheckBox pour vous permettre de personnaliser la checkBox (voir démo).
- Ajout de la propriété OnCheckBoxClick appelée lorsque l' utilisateur clique sur la checkbox d' un enregistrement.

Voilà, j' ai fait tout ce que j' avais en tête pour ce compo ^^

A+
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
24 avril 2008 à 22:16
Oui, il vaut même plus que ça avec les options..
mais c'est vraiment le pied total.
Cela dit, la plupart de mes outils sont chers mais rien ne sort de ma poche heureusement..
Ce qui fait aussi que je fais peu d'intervention sur le site.
Si tu veux te faire un peu de sous, vend plutôt des projets clés en main (avec maintenance)
Mais il faut faire attention car on est vite débordés..
L'expérience montre que la donation PayPal ne nourrit pas son homme..
Et puis tu n'es pas bon vendeur !
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
24 avril 2008 à 17:46
Salut Cantador,
merci pour le 12/10, mais t' aurais pu mettre un peu plus!

Par contre, le TcxGrid semble coûter la peau des fesses (350 € d' après une réponse sur le forum) ^^
Alors, oui, mes compos sont gratuits, oui, il y a toute l' info pour faire une donation PayPal, mais non, je n' ai encore pas reçut un centime :(

A+
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
24 avril 2008 à 17:04
Bonjour mauricio,

bravo pour ce gros boulot
et très instructif !
même si je ne l'utilise pas (because TcxGrid)..
12/10
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
23 avril 2008 à 18:01
J' ai intégré le code de :
- cyMouseDown dans celui de DoMouseDown
- cyMouseUp dans celui de DoMouseUp

C' est plus simple ^^

A+
Utilisateur anonyme
23 avril 2008 à 13:32
Bravo,
cette fois c'est bon ^^
10/10 bien mérité
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
23 avril 2008 à 13:06
Voilà,

vous pouvez faire votre propre gestion de la roulette ^^

A+
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
23 avril 2008 à 12:51
Merci Francky,

Chez moi OnMouseWheelDown et OnMouseWheelUp sont en protected du compo TControl, donc ils ne sont pas accessibles à moins d' hériter.

Je vais les rendre visibles pour pouvoir utiliser ces événements et personnaliser la gestion de la roulette dans vos programmes.

A+
Francky23012301 Messages postés 400 Date d'inscription samedi 6 août 2005 Statut Membre Dernière intervention 11 février 2016 1
23 avril 2008 à 11:57
Salut,

Je n'ai pas de quoi le tester ici (Version perso de Delphi) mais j'ai regardé le code. Vu le travail conséquent j'ai pas eu le temps de tout éplucher mais vu le travail et la qualité évident de ce travail, ca mérite un 10/10

A++
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
23 avril 2008 à 11:57
Salut,

il me semble qu' il faut juste surcharger les événements suivants hérités du TControl:

function TControl.DoMouseWheelDown(Shift: TShiftState; MousePos: TPoint): Boolean;
begin
Result := False;
if Assigned(FOnMouseWheelDown) then
FOnMouseWheelDown(Self, Shift, MousePos, Result);
end;

function TControl.DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean;
begin
Result := False;
if Assigned(FOnMouseWheelUp) then
FOnMouseWheelUp(Self, Shift, MousePos, Result);
end;

Reste plus qu' à chercher le code à y mettre dedans ^^

A+
Utilisateur anonyme
23 avril 2008 à 11:45
je veux bien te l'envoyer mais je ne vois pas bien de quelle partie tu parles et pour tout dire je n'en comprend pas bien l'intérêt non plus puisque tu l'as ici ... remarque je suis peut être pas encore bien réveillé ^^
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
23 avril 2008 à 11:30
OnMouseWheelUp/Down de TcyDBGRid (ou d' un TDBGrid) n' apparait pas dans l'inspecteur d'objet chez moi (Delphi7).
Donc, j' ai rien prévu ^^

Le problème est situé ici:
constructor TcyDBGrid.Create(AOwner: TComponent);
begin
inherited Create(AOwner);

FCheckedList := TcyBookmarkList.Create(self);
FCheckedList.OnChange := CheckBoxesChanged;
FMouseWheelMode := mwRowSelect;
FOldVerticalScrollBarState := true;
FOldHorizontalScrollBarState := true;
FHorizontalScrollBar := true;
FVerticalScrollBar := true;
FCheckBoxes := TcyCheckBoxes.Create(self);
FCheckBoxes.OnChange := CheckBoxesChanged;

// Mouse wheel handling :
OnMouseWheelDown := MouseWheelDown;
OnMouseWheelUp := MouseWheelUp;
end;

Ce qu' il faut c' est ne pas attibué OnMouseWheelDown/OnMouseWheelUp mais récupérer le message.
Je n' aurai pas le temps aujourd' hui de le faire, par contre si quelqu' un me donne ce bout de code par message privé cela me fera gagner du temps.

Par contre, il existe une propriété MouseWheelMode qui peut prendre les valeurs suivantes:
- mwDoNothing: ne fait rien
- mwOriginal: se comporte comme un TDBGrid normal
- mwNavigate: permet d' avancer ou reculer dans les enregistrements du DataSet.
- mwRowSelect: comme mwNavigate, mais permet en plus, avec la touche Shift, de seleccionner plusieurs enregistrements lorsque dgMultiSelect dans la propriété Options.

A+
Utilisateur anonyme
23 avril 2008 à 11:14
ha ha ha

mais non F0xi il est juste en avance sur son temps ^^
il parle le franglais. N'empêche, mieux ça que le SMS ^^

Bon .. un peut de sérieux .. (j'en connais un qui attend cela depuis longtemps ^^)

J'ai pas encore tout regarder à fond mais comme j'ai eut la chance de suivre l'évolution de ce composant j'ai encore une longueur sur les autres ^^

Je le trouve génial (une très bonne idée de composant) mais j'ai toute fois soulevé un petit problème ^^
Si tu utilise les events OnMouseWheelUp/Down depuis l'inspecteur d'objet ton code dans (cyDBGrid) n'est plus exécuté. A mon avis il serait préférable de passer par le WndProc pour éviter le court circuit.

"gràce à Cirec qui m' a donné un bon coup de main"
C'est gentil mais même si je t'ai enlevé une épine du pied je n'ai pas fait tant que ça ... d'ailleurs si tu avais mis les crédits dans le code on aurait pu se rendre compte de la masse de travail que tu as fait ... tout seul comparer à ma modeste contribution ^^

Pour l'instant je n'ai rien d'autre à dire sauf que je réserve ma note pour après la correction .... ça sent le 10/10
Bravo
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
23 avril 2008 à 00:57
Ma unit
Overload component

tu t'exprime de façon bizarre :) t'as craké ou c'est la fatigue ?
hihihi

en tout cas, merci pour cette contribution,
j'y jetterais un oeuil.
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
22 avril 2008 à 19:00
Je donne gratuitement ce compo malgrè les heures passées dessus car d' abord je me suis basé sur certains bout de code trouvé sur CS, puis gràce à l' excelent tuto de delphiProg sur le Overload component et enfin, gràce à Cirec qui m' a donné un bon coup de main.

Je le donne aussi car CS c' est avant tout le partage de connaissance et je pense que ce compo répond à une certaine demande générale.

Pour les plus curieux, j' ai fait ma propre class de BookmarList, elle me permet de gérer les checkBoxes.

A+
Rejoignez-nous