W jaki sposób odczytać dane w komórce w DBGrid, znajdującej się pod kursorem myszy w trakcie przesuwania jego nad DBGrid`em.
Czasem w komórce nie mieszczą mi się dane i wtedy chciał bym aby po najechaniu kursorem na tą komórkę cała zawartość mogła być pokazana w użytkownikowi (gdzie to już później zdecyduję).
0
0
W StringGridzie robi sie to tak:
Var
XCol, XRow: Integer;
begin
Grid.MouseToCell(X, Y, XCol, XRow);
end;
ale DBGrid tylko wyświetla dane a nie ładuje więc po odczytaniu numeru wiersza i kolumny będziesz musiał odpowiednio ustaić kursor w dataset i z tamtąd pobrać dane
0
Dzięki co prawda w DBgrid nie ma MouseToCell ale ale poszedłem tym torem i mam
uses
Windows, Messages, ... ;
type TMojDBGrid = class(TDBGrid);
...
procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
gc: TGridCoord;
begin
gc:= DBGrid1.MouseCoord(x, y);
if (gc.X > 0) AND (gc.Y > 0) then
begin
DBGrid1.DataSource.DataSet.MoveBy(gc.Y - TMojDBGrid(DBGrid1).Row);
DBGrid1.SelectedIndex:=gc.X-1 ;
label1.caption := DBGrid1.Fields[gc.X-1].AsString ;
end;
end;