begin process at 2008 05 17 06:47:32
1 173 919 membres
51 nouveaux aujourd'hui
13 973 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TCYDBGRID (SANS INSTALLER OBLIGATOIREMENT)


Information sur la source

Catégorie :Composants Classé sous : DBGrid, TcyDBGrid, bookmark, composant, roulette Niveau : Expert Date de création : 22/04/2008 Date de mise à jour : 30/04/2008 17:13:43 Vu / téléchargé: 1 570 / 183

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note


Description

Une TDBGrid avec :
- des propriétés cachées révélées
- Événement OnSelectCell
- Gestion de la roulette pour naviguer, selectionner plusieurs lignes (avec la touche shift enfoncée), faire comme la TDBGrid ou encore ne rien faire ^^
- Multiselection de ligne en 2 click (touche shift pour le second click)
- scrollbars visibles ou non
- 1 CheckBox pour chaque ligne
- Laisser faire votre propre gestion de la roulette

Conclusion

Ma unit fait le overload du TDBGrid, donc pas besoin d' installer le compo.

Si vous l' installez (installez le pack ^^), vous pourrez voir les nouvelles propriétés dans l' object inspector.

Le pack se trouve encore et toujours ici:
http://www.delphifr.com/codes/COMPOSANTS-TCY-COMPONENT-PACK_30296.aspx

A+
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

23 avril 2008 13:05:47 :
Laisser faire votre propre gestion de la roulette
23 avril 2008 17:59:24 :
Amélioration de la gestion de la roulette ^^
30 avril 2008 17:13:43 :
Diverses améliorations ...
  • signaler à un administrateur
    Commentaire de MAURICIO le 22/04/2008 19:00:04

    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+

  • signaler à un administrateur
    Commentaire de f0xi le 23/04/2008 00:57:58 administrateur CS

    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.

  • signaler à un administrateur
    Commentaire de MAURICIO le 23/04/2008 11:04:25

    Salut Foxi,

    ce compo surcharge le TDBGrid (overload en Anglais).
    Pour comprendre à quoi ça consiste, jetez un oeil sur le tuto de DelphiProg:
    http://www.delphifr.com/codes/MODIFIEZ-COMPOSANTS-EXISTANTS-SANS-MODIFIER-VOS-FICHES-EXISTANTES_28866.aspx

    A+

  • signaler à un administrateur
    Commentaire de cirec le 23/04/2008 11:14:22 administrateur CS

    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

  • signaler à un administrateur
    Commentaire de MAURICIO le 23/04/2008 11:30:50

    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+

  • signaler à un administrateur
    Commentaire de cirec le 23/04/2008 11:45:43 administrateur CS

    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é ^^

  • signaler à un administrateur
    Commentaire de MAURICIO le 23/04/2008 11:57:13

    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+

  • signaler à un administrateur
    Commentaire de Francky23012301 le 23/04/2008 11:57:53 10/10

    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++

  • signaler à un administrateur
    Commentaire de MAURICIO le 23/04/2008 12:51:15

    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+

  • signaler à un administrateur
    Commentaire de MAURICIO le 23/04/2008 13:06:56

    Voilà,

    vous pouvez faire votre propre gestion de la roulette ^^

    A+

  • signaler à un administrateur
    Commentaire de cirec le 23/04/2008 13:32:11 administrateur CS 10/10

    Bravo,
    cette fois c'est bon ^^
    10/10 bien mérité

  • signaler à un administrateur
    Commentaire de MAURICIO le 23/04/2008 18:01:59

    J' ai intégré le code de :
    - cyMouseDown dans celui de DoMouseDown
    - cyMouseUp dans celui de DoMouseUp

    C' est plus simple ^^

    A+


  • signaler à un administrateur
    Commentaire de cantador le 24/04/2008 17:04:38

    Bonjour mauricio,

    bravo pour ce gros boulot
    et très instructif !
    même si je ne l'utilise pas (because TcxGrid)..
    12/10

  • signaler à un administrateur
    Commentaire de MAURICIO le 24/04/2008 17:46:56

    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+

  • signaler à un administrateur
    Commentaire de cantador le 24/04/2008 22:16:09

    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 !

  • signaler à un administrateur
    Commentaire de MAURICIO le 30/04/2008 17:21:01

    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+

Ajouter un commentaire

Appels d'offres

Pub



Snippets en rapport

CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS