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

View File

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

View File

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