Skip to content

Commit e2f95e5

Browse files
committed
improve focus support in TEsImageControl and TEsVirtualImageControl
1 parent fede80a commit e2f95e5

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

Source/ES.Images.pas

+12-8
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,7 @@ TEsImageControl = class(TEsBaseLayout)
317317
procedure SetTransparentGraphic(const Value: Boolean);
318318
procedure WMKillFocus(var Message: TWMKillFocus); message WM_KILLFOCUS;
319319
procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS;
320+
procedure CNKeydown(var Message: TWMKeyDown); message CN_KEYDOWN;
320321
{$IFDEF VER340UP}
321322
function GetImageName: TImageName;
322323
function IsImageNameStored: Boolean;
@@ -326,7 +327,6 @@ TEsImageControl = class(TEsBaseLayout)
326327
function CanAutoSize(var NewWidth, NewHeight: Integer): Boolean; override;
327328
procedure CalcContentMargins(var Margins: TContentMargins); override;
328329
procedure ImageProxyChange(Sender: TObject);
329-
procedure KeyUp(var Key: Word; Shift: TShiftState); override;
330330
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
331331
procedure Loaded; override;
332332
procedure Paint; override;
@@ -586,11 +586,11 @@ TEsCustomVirtualImageControl = class(TEsBaseLayout)
586586
procedure SetFrameWidth(const Value: TFrameWidth);
587587
procedure WMKillFocus(var Message: TWMKillFocus); message WM_KILLFOCUS;
588588
procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS;
589+
procedure CNKeydown(var Message: TWMKeyDown); message CN_KEYDOWN;
589590
protected
590591
procedure CalcContentMargins(var Margins: TContentMargins); override;
591592
procedure ChangeScale(M, D: Integer; isDpiChange: Boolean); override;
592593
procedure ImageProxyChange(Sender: TObject);
593-
procedure KeyUp(var Key: Word; Shift: TShiftState); override;
594594
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
595595
procedure Paint; override;
596596
public
@@ -1511,6 +1511,8 @@ function TEsImageControl.CanFocus: Boolean;
15111511
Result := AllowFocus and Inherited;
15121512
end;
15131513

1514+
1515+
15141516
function TEsImageControl.GetOpacity: Byte;
15151517
begin
15161518
Result := ImageProxy.Opacity;
@@ -1609,10 +1611,11 @@ function TEsImageControl.IsImageNameStored: Boolean;
16091611
end;
16101612
{$ENDIF}
16111613

1612-
procedure TEsImageControl.KeyUp(var Key: Word; Shift: TShiftState);
1614+
procedure TEsImageControl.CNKeydown(var Message: TWMKeyDown);
16131615
begin
16141616
inherited;
1615-
if (Key = VK_SPACE) {or (Key = VK_RETURN)} then
1617+
1618+
if (Message.CharCode = VK_SPACE) or (Message.CharCode = VK_RETURN) then
16161619
Click;
16171620
end;
16181621

@@ -1666,7 +1669,7 @@ procedure TEsImageControl.Paint;
16661669
else
16671670
DrawFrame(inherited Canvas, nil, ClientRect, FrameStyle, FrameWidth, FrameColor, clBtnHighlight, clBtnShadow);
16681671

1669-
if Focused then
1672+
if IsShowFocusRect(Self) then
16701673
begin
16711674
(inherited Canvas).Brush.Color := TColor($FF000000);
16721675
(inherited Canvas).DrawFocusRect(ContentRect);
@@ -2388,10 +2391,11 @@ function TEsCustomVirtualImageControl.IsImageNameStored: Boolean;
23882391
Result := ImageProxy.ImageName <> '';
23892392
end;
23902393

2391-
procedure TEsCustomVirtualImageControl.KeyUp(var Key: Word; Shift: TShiftState);
2394+
procedure TEsCustomVirtualImageControl.CNKeydown(var Message: TWMKeyDown);
23922395
begin
23932396
inherited;
2394-
if (Key = VK_SPACE) {or (Key = VK_RETURN)} then
2397+
2398+
if (Message.CharCode = VK_SPACE) or (Message.CharCode = VK_RETURN) then
23952399
Click;
23962400
end;
23972401

@@ -2432,7 +2436,7 @@ procedure TEsCustomVirtualImageControl.Paint;
24322436
DrawDesignStretchHint(Canvas, ClientRect, ImageProxy);
24332437
end;
24342438

2435-
if Focused then
2439+
if IsShowFocusRect(Self) then
24362440
begin
24372441
Canvas.Brush.Color := TColor($FF000000);
24382442
Canvas.DrawFocusRect(ContentRect);

0 commit comments

Comments
 (0)