Skip to content

Commit 7cc9ec4

Browse files
Aded keyboard scrolling support to projects grid
1 parent e7dcd56 commit 7cc9ec4

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

Source/Controls/DPM.Controls.VersionGrid.pas

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,9 @@ TVersionGrid = class(TCustomControl)
187187
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X: Integer; Y: Integer); override;
188188
procedure MouseMove(Shift: TShiftState; X: Integer; Y: Integer); override;
189189
procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
190+
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
191+
192+
190193

191194
procedure DoSelectionChanged;
192195

@@ -1195,6 +1198,44 @@ function TVersionGrid.IsAtTop: boolean;
11951198
result := FVScrollPos = 0;
11961199
end;
11971200

1201+
procedure TVersionGrid.KeyDown(var Key: Word; Shift: TShiftState);
1202+
var
1203+
scrollPos : integer;
1204+
begin
1205+
inherited;
1206+
case Key of
1207+
VK_DOWN : DoLineDown(false);
1208+
VK_UP : DoLineUp(false);
1209+
VK_PRIOR :
1210+
begin
1211+
ScrollPos := FVScrollPos - FSelectableRows;
1212+
if ScrollPos < 0 then
1213+
ScrollPos := 0;
1214+
DoPageUp(true,ScrollPos);
1215+
end;
1216+
VK_NEXT :
1217+
begin
1218+
ScrollPos := FVScrollPos + FSelectableRows;
1219+
if ScrollPos > RowCount -1 then
1220+
ScrollPos := RowCount - 1;
1221+
DoPageDown(true, ScrollPos);
1222+
end;
1223+
VK_HOME:
1224+
begin
1225+
ScrollPos := 0;
1226+
DoPageUp(true,ScrollPos);
1227+
end;
1228+
VK_END :
1229+
begin
1230+
ScrollPos := RowCount - 1;
1231+
DoPageDown(true, ScrollPos);
1232+
end;
1233+
1234+
end;
1235+
1236+
1237+
end;
1238+
11981239
procedure TVersionGrid.Loaded;
11991240
begin
12001241
inherited;

0 commit comments

Comments
 (0)