FilteredEdit components: forward the Return press correctly when it is not handled by the filtered control

git-svn-id: trunk@35552 -
This commit is contained in:
juha 2012-02-22 10:49:14 +00:00
parent 7e3c33a8a0
commit e081f88aa0
3 changed files with 22 additions and 15 deletions

View File

@ -31,7 +31,7 @@ type
protected
procedure MoveNext; override;
procedure MovePrev; override;
procedure ReturnPressed; override;
function ReturnPressed: Boolean; override;
procedure SortAndFilter; override;
procedure ApplyFilterCore; override;
function GetDefaultGlyph: TBitmap; override;
@ -252,12 +252,14 @@ begin
end;
end;
procedure TListFilterEdit.ReturnPressed;
function TListFilterEdit.ReturnPressed: Boolean;
// Retuns true if the Return press was forwarded to the ListBox
var
Key: Char;
begin
Key:=Char(VK_RETURN);
if Assigned(fFilteredListbox.OnKeyPress) then
Result:=Assigned(fFilteredListbox.OnKeyPress);
if Result then
fFilteredListbox.OnKeyPress(fFilteredListbox, Key);
end;

View File

@ -65,7 +65,7 @@ type
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure MoveNext; override;
procedure MovePrev; override;
procedure ReturnPressed; override;
function ReturnPressed: Boolean; override;
procedure SortAndFilter; override;
procedure ApplyFilterCore; override;
function GetDefaultGlyph: TBitmap; override;
@ -520,12 +520,14 @@ begin
fFilteredTreeview.MoveToPrevNode;
end;
procedure TTreeFilterEdit.ReturnPressed;
function TTreeFilterEdit.ReturnPressed: Boolean;
// Retuns true if the Return press was forwarded to the Tree
var
Key: Char;
begin
Key:=Char(VK_RETURN);
if Assigned(fFilteredTreeview.OnKeyPress) then
Result:=Assigned(fFilteredTreeview.OnKeyPress);
if Result then
fFilteredTreeview.OnKeyPress(fFilteredTreeview, Key);
end;

View File

@ -188,7 +188,7 @@ type
procedure ApplyFilterCore; virtual; abstract;
procedure MoveNext; virtual; abstract;
procedure MovePrev; virtual; abstract;
procedure ReturnPressed; virtual; abstract;
function ReturnPressed: Boolean; virtual; abstract;
function GetDefaultGlyphName: String; override;
public
constructor Create(AOwner: TComponent); override;
@ -896,17 +896,20 @@ begin
end;
procedure TCustomControlFilterEdit.KeyDown(var Key: Word; Shift: TShiftState);
var
Handled: Boolean;
begin
if (Key in [VK_UP, VK_DOWN, VK_RETURN]) and (Shift = []) then
begin
Handled:=False;
if Shift = [] then
case Key of
VK_UP: MovePrev;
VK_DOWN: MoveNext;
VK_RETURN: ReturnPressed;
VK_UP: begin MovePrev; Handled:=True; end;
VK_DOWN: begin MoveNext; Handled:=True; end;
VK_RETURN: Handled:=ReturnPressed;
end;
Key:=VK_UNKNOWN;
end
else inherited KeyDown(Key, Shift);
if Handled then
Key:=VK_UNKNOWN
else
inherited KeyDown(Key, Shift);
end;
procedure TCustomControlFilterEdit.Change;