![]() |
Markieren mit Shift + Mausklick im DBGrid
Um in einem DBGrid mehrere Datensätze wie z.B. in Excel durch Klicken auf den ersten und letzten Datensatz bei gedrückter Shift-Taste zu markieren, muss man folgenden Quellcode in den OnMouseUp-Event des DBGrid einfügen:
Delphi-Quellcode:
Zu erwähnen sei noch, das FirstPosMouse eine globale Variable sein muss.
procedure TMyForm.DBGridMouseUp(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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz