LCL: forward Return key press to the filtered control in FilterEdit controls

git-svn-id: trunk@35442 -
This commit is contained in:
juha 2012-02-18 14:04:26 +00:00
parent 43e8d15510
commit b5744efb18
3 changed files with 30 additions and 10 deletions

View File

@ -6,7 +6,7 @@ interface
uses uses
Classes, SysUtils, Forms, LResources, Graphics, Controls, StdCtrls, Classes, SysUtils, Forms, LResources, Graphics, Controls, StdCtrls,
LCLProc, EditBtn, FileUtil, AvgLvlTree; LCLProc, LCLType, EditBtn, CheckLst, FileUtil, AvgLvlTree;
type type
@ -31,6 +31,7 @@ type
protected protected
procedure MoveNext; override; procedure MoveNext; override;
procedure MovePrev; override; procedure MovePrev; override;
procedure ReturnPressed; override;
procedure SortAndFilter; override; procedure SortAndFilter; override;
procedure ApplyFilterCore; override; procedure ApplyFilterCore; override;
function GetDefaultGlyph: TBitmap; override; function GetDefaultGlyph: TBitmap; override;
@ -55,8 +56,6 @@ procedure Register;
implementation implementation
uses CheckLst;
procedure Register; procedure Register;
begin begin
{$I listfilteredit_icon.lrs} {$I listfilteredit_icon.lrs}
@ -253,5 +252,14 @@ begin
end; end;
end; end;
procedure TListFilterEdit.ReturnPressed;
var
Key: Char;
begin
Key:=Char(VK_RETURN);
if Assigned(fFilteredListbox.OnKeyPress) then
fFilteredListbox.OnKeyPress(fFilteredListbox, Key);
end;
end. end.

View File

@ -6,7 +6,7 @@ interface
uses uses
Classes, SysUtils, Forms, LResources, Graphics, Classes, SysUtils, Forms, LResources, Graphics,
Controls, ComCtrls, EditBtn, FileUtil, AvgLvlTree, fgl; Controls, ComCtrls, EditBtn, LCLType, FileUtil, AvgLvlTree, fgl;
type type
@ -65,6 +65,7 @@ type
procedure Notification(AComponent: TComponent; Operation: TOperation); override; procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure MoveNext; override; procedure MoveNext; override;
procedure MovePrev; override; procedure MovePrev; override;
procedure ReturnPressed; override;
procedure SortAndFilter; override; procedure SortAndFilter; override;
procedure ApplyFilterCore; override; procedure ApplyFilterCore; override;
function GetDefaultGlyph: TBitmap; override; function GetDefaultGlyph: TBitmap; override;
@ -519,5 +520,14 @@ begin
fFilteredTreeview.MoveToPrevNode; fFilteredTreeview.MoveToPrevNode;
end; end;
procedure TTreeFilterEdit.ReturnPressed;
var
Key: Char;
begin
Key:=Char(VK_RETURN);
if Assigned(fFilteredTreeview.OnKeyPress) then
fFilteredTreeview.OnKeyPress(fFilteredTreeview, Key);
end;
end. end.

View File

@ -188,6 +188,7 @@ type
procedure ApplyFilterCore; virtual; abstract; procedure ApplyFilterCore; virtual; abstract;
procedure MoveNext; virtual; abstract; procedure MoveNext; virtual; abstract;
procedure MovePrev; virtual; abstract; procedure MovePrev; virtual; abstract;
procedure ReturnPressed; virtual; abstract;
function GetDefaultGlyphName: String; override; function GetDefaultGlyphName: String; override;
public public
constructor Create(AOwner: TComponent); override; constructor Create(AOwner: TComponent); override;
@ -896,13 +897,14 @@ end;
procedure TCustomControlFilterEdit.KeyDown(var Key: Word; Shift: TShiftState); procedure TCustomControlFilterEdit.KeyDown(var Key: Word; Shift: TShiftState);
begin begin
if (Key in [VK_UP, VK_DOWN]) and (Shift = []) then if (Key in [VK_UP, VK_DOWN, VK_RETURN]) and (Shift = []) then
begin begin
case Key of case Key of
VK_UP: MovePrev; VK_UP: MovePrev;
VK_DOWN: MoveNext; VK_DOWN: MoveNext;
VK_RETURN: ReturnPressed;
end; end;
Key:=0; Key:=VK_UNKNOWN;
end end
else inherited KeyDown(Key, Shift); else inherited KeyDown(Key, Shift);
end; end;
@ -946,8 +948,8 @@ begin
RestoreSelection; RestoreSelection;
end end
else begin else begin
if [csDestroying,csDesigning]*ComponentState<>[] then exit; if [csDestroying,csDesigning]*ComponentState=[] then
InvalidateFilter; InvalidateFilter;
end; end;
end; end;