Einzelnen Beitrag anzeigen

HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#1

RecNo gibt ergibt immer -1

  Alt 19. Mai 2021, 16:19
Delphi-Version: XE7
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;
  Mit Zitat antworten Zitat