DBGrid - Problem-który wiersz DBG jest pod aktualnie przes

0

Witam mam problem, którego pomimo usinych starań i przejrzenia forum nie mogłem rozwiązać. A mianowicie:
Podczas przeciągania (Drag&Drop-a) chciałbym upuścić coś na DBGrida.Oczywiście wiem jak to sie robi itp a problem jest w tym żę nie wiem na który wiersz tego DBGrida upuściłem.
Mniej wiecej chodzi mi o rozwiązanie problemu:

  1. Przy poruszaniu myszka nad DBGridem przechodzic (Przesuwać Indicator) do tego wiersza nad którym właśnie jest kursor myszki, najlepiej w metodzie OnMouseMove (tak myślę). Próbowałem wysłać do DBGRida komunikat:
    SendMessage(DBGrid1.Handle,BM_CLICK,0,0); ale "On" na nie go nie reaguje
0

Trzeba obsluzyc zdarzenie OnEndDrag.

0

Oj to ja wiem że jednak tak trzeba i napisałem sobie tak:

procedure TFMagazynGlowna.DBGZapotrzebowaniaDragOver(Sender,
  Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);

var pozycja:TGridCoord;
begin
//To poniżej naj ważniejsze dla przykładu-->
   
  pozycja:=DBGZapotrzebowania.MouseCoord(X,Y);
  if pozycja.y >0 then //Aby nie działało dla Tytułu Tabeli
     DBGZapotrzebowania.DataSource.DataSet.RecNo:= pozycja.y;

//<----

  If Source = DBGSurowiec then
      Accept := True
   else
      Accept := False;
    ..........
end;

i prawie dział tylko że dział dobrze tylko dla wierszy widocznych w DBGridzie:-) jak tabela sie przewinie to juz d..a. Bo MouseCoord pokazuje koordynatę nad DBGridem więc jak chcę upuścić coś nad 12 wierszem DBGrida (który fizycznie pokazuje tylko 6 wierszy) i ten 12 wiersz jest widoczny jako 4 to MouseCoord pokaże że jestem nad 4 a nie nad 12 wierszem DBGrida. Więc teraz wiem, że MouseCoord się mi nie przyda ale może to komuś pomoże w tym co robi dlatego to napisałem.

1 użytkowników online, w tym zalogowanych: 0, gości: 1