Bonjour,
je souhaiterais afficher une bulle perso sur une dbgrid
cette bulle sera differente selon la ligne survolée
je sais comment afficher une bulle mais pas comment recuperer la ligne que je survole avec la souris![]()
Bonjour,
je souhaiterais afficher une bulle perso sur une dbgrid
cette bulle sera differente selon la ligne survolée
je sais comment afficher une bulle mais pas comment recuperer la ligne que je survole avec la souris![]()
Je fais ca avec une StringGrid
Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 procedure Tfrm.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState;X, Y: Integer); Var C, R : Longint; Chaine: String; begin TStringGrid(Sender).MouseToCell(X, Y, C, R); If (c<0)Or(r<0) Then Exit; Chaine:= TStringGrid(Sender).Cells[2,R]; If Chaine<>TStringGrid(Sender).Hint Then Begin TStringGrid(Sender).Hint := Chaine; Application.ActivateHint(Mouse.CursorPos); End; end;
Il te faudra peut être l'adapter pour un DBGrid
Modérateur Delphi
Le guide du bon forumeur :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
oui moi aussi je l'ai deja fait sur une StringGrid
le probleme c'est que pour les DBGrid, MouseToCell ne marche pas
donc je n'arrive pas a savoir sur quelle ligne je me trouve![]()
Tu peux utiliser une classe parent du DbGrid, genre TCustomGrid, qui, elle a sa propriété MouseToCell de publiée.
(C'est pas très propre mais ca peut fonctionner)
Modérateur Delphi
Le guide du bon forumeur :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
j'ai essayé ça
mais ça ne change rien au probleme, je ne recupere pas la ligne ou je suisprocedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
ScrPt, GrdPt: TPoint;
Cell: TGridCoord;
begin
if not (Sender is TDBGrid) then exit;
ScrPt := Mouse.CursorPos;
GrdPt := (Sender as TDBGrid).ScreenToClient(ScrPt);
Cell := (Sender as TDBGrid).MouseCoord(GrdPt.X, GrdPt.Y);
if cell.y>=0 then begin
(sender as tdbgrid).Hint:=aligne[cell.y];
(sender as tdbgrid).ShowHint:=true;
Application.ActivateHint(Mouse.CursorPos);
end;
end;
moi je voudrais recuperer la ligne, aller chercher des infos à partir de cette ligne, et les afficher dans une bulle![]()
Oui, je sais, TCustomGrid est une classe parente de TDbGrid Donc tu peux caster le Sender avec et utiliser les fonctionsEnvoyé par jmulans
Envoyé par Aide Delphi
Donc dans l'exemple que je te donne, tu peux tester avec TCustomGrid au lieu de TStringGrid pour caster le SenderEnvoyé par Aide delphi
Modérateur Delphi
Le guide du bon forumeur :
- Les règles du forum tu liras
- La FAQ et les tutoriels tu consulteras
- La fonction Recherche tu utiliseras
- Google tu vénèreras
__________
Rayek World : Youtube Facebook
Partager