Hallo zusammen,
ich versuche im MouseUp Ereignis die Zeilennummer zu speichern:
var
Grd: TDBGrid;
FirstPosMouse: Integer;
begin
FirstPosMouse := Grd.DataSource.DataSet.RecNo;
RecNo liefert aber immer -1 ? Warum ? Was braucht Ihr noch für Infos ?
Gruss
Holger
Folgenden Code will ich zum laufen bringen: (Beim DBGrid durch Shift+Mouseklick einen Bereich markieren)
Code:
procedure TFormT.DBG_UWMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
LastPos: Integer;
TempBookmark: Integer;
Grd: TDBGrid;
begin
Grd := TDBGrid(Sender);
if (Shift = [ssShift]) and (Button = mbLeft) and (dgMultiSelect in Grd .Options) and (FirstPosMouse > 0) then
begin
LastPos := Grd.DataSource.DataSet.RecNo;
with Grd.DataSource.DataSet do
begin
DisableControls;
Grd.DataSource.DataSet.MoveBy(FirstPosMouse - LastPos);
repeat
Grd.SelectedRows.CurrentRowSelected := True;
if (FirstPosMouse < LastPos) then
Next
else
Prior;
TempBookmark := Grd.DataSource.DataSet.RecNo;
until (TempBookmark = LastPos);
EnableControls;
end;
end
else
FirstPosMouse := Grd.DataSource.DataSet.RecNo;
end;