Bonjour,
Quelqu un voit comment dessiner un combobox dans un stringGrid ?
ca m a l air assez complique je ne vois pas comment c jouable
merci d avance
Bonjour,
Quelqu un voit comment dessiner un combobox dans un stringGrid ?
ca m a l air assez complique je ne vois pas comment c jouable
merci d avance
Bjr,
J'te le dis tout net : c'est galère !
C'est pas pour rien que c'est pas implémenter par défaut ...
En fait le pb n'est pas tant de dessiner la combo, non, mais de rester synchro avec la liste qd on utilise les touches de déplacement par ex mais surtout qd on fait défiler la grille avec les ascenseurs ou encore la roulette de la souris. Et ce ne sont que quelques pb parmi d'autres.
Pour peu que tu aies une combo différente en fct du type de colonne, voir du type de cellule et ca se corse sévère
Tu peux trouver des ex sur le net mais le mieux est soit d'acheter un composant grille vraiment digne de ce nom (genre mini grille Excel), soit développer ton propre composant ... j'y travaille
Et je ne te parle pas des pbs que tu peux rencontrer avec un TDBGrid !
Bonne chance
@+
Php
Je te remercie pour l info..
.bonne journee
Ben, non, on peut le faire assez simplement, dans la méthode ondrawcell de ton stringgrid tu défini l'affichage ou la disparition de ta combobox.
Voila le code qui place une combobox dans la cellule 5,2 de ton stringgrid.
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 procedure TForm1.stringgrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var rcb,r1:Trect; begin if (acol=5) and (arow=2) then begin rcb:=stringgrid1.CellRect(5,2); r1:=stringgrid1.CellRect(stringgrid1.FixedCols-1,stringgrid1.FixedRows-1); combobox1.Left:=rcb.Left+stringgrid1.Left; combobox1.top:=rcb.top+stringgrid1.Top; combobox1.Width:=stringgrid1.ColWidths[5]; combobox1.Visible:=true; end else combobox1.Visible:=false; end;
Oki ... solution un peu hard mais efficace qui consiste a deplcader le composant sur la cellue souhaite (si j'ai bien compris).
Faire quand meme attention au fait que la ligne peut "disparaitre" en haut ou en bas.
Sinon ya les composants TMS qui fournissent de belles grilles ... qui doivent surement gerer ce genre de problemes.
en effet les composants TMS, proposent une TADvStringGrid qui permet de mettre des combobox, des checkbox, memo, images, etc... dans les grilles.
Bien fait, simple d'utilisation.
C'est l'avantage du ondrawcell, car quand la ligne "disparait" en haut ou en bas, il ne se déclanche pas pour la cellule, d'ou le test sur Acol et Arow.Envoyé par Clorish
Sinon j'utilise aussi les TMS, mais il sont payant, perso je les ai eu avec le cd de delphi 7
payant non.
Ils sont gratuits ... mais pour une utilisation perso.
Ils sont telechargeable depuis leurs site. Compo par compo ou par package.
Si tu paye tu peut les utiliser a but commercial pour une ou plusisurs appli (developpeurs) selon la licence plus les codes sources.
Oui mais en version gratuite tu as une phrase "version d'évaluation..." qui s'affiche dans le stringgrid
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager