![]() |
Markieren mit Shift + Bild-Tasten im DBGrid
Um in einem DBGrid mehrere Datensätze wie z.B. in Excel durch betätigen der Bild-Tasten bei gedrückter Shift-Taste zu markieren, muss man folgenden Quellcode in den OnKeyDown-Event des DBGrid einfügen:
Delphi-Quellcode:
anschließend muss noch folgender Quellcode in den OnKeyUp-Event des DBGrids eingefügt werden:
procedure TMyForm.GrdMasterKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); begin if (Key in [VK_PRIOR, VK_NEXT]) and (dgMultiSelect in TDBGrid(Sender).Options) then FirstPos := TDBGrid(Sender).DataSource.DataSet.RecNo else FirstPos := 0; end;
Delphi-Quellcode:
Zu erwähnen sei noch, das FirstPos eine globale Variable sein muss.
procedure TChildForm.GrdMasterKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState); var LastPos: Integer; TempBookmark: Integer; Grd: TDBGrid; begin Grd := TDBGrid(Sender); if (Shift = [ssShift]) and (Key in [VK_PRIOR, VK_NEXT]) and (dgMultiSelect in Grd.Options) and (FirstPos > 0) then begin LastPos := Grd.DataSource.DataSet.RecNo; with Grd.DataSource.DataSet do begin DisableControls; Grd.DataSource.DataSet.MoveBy(FirstPos - LastPos); repeat Grd.SelectedRows.CurrentRowSelected := True; if (FirstPos < LastPos) then Next else Prior; TempBookmark := Grd.DataSource.DataSet.RecNo; until (TempBookmark = LastPos); EnableControls; end; end; 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