ExCtrls: Fix TRadiogroupEx/TCheckGroupEx firing OnEnter/OnExit events when another sub-control is selected. New events OnItemEnter/OnItemExit. See also LCL issue #37768.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@7674 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2020-09-20 17:32:29 +00:00
parent 2263b9ccd0
commit 206fc7f0e3
2 changed files with 14 additions and 13 deletions

View File

@ -721,9 +721,9 @@ object Form1: TForm1
Left = 8 Left = 8
Height = 25 Height = 25
Top = 254 Top = 254
Width = 99 Width = 113
AutoSize = True AutoSize = True
Caption = 'Test 2nd form' Caption = 'Test modal form'
OnClick = Button2Click OnClick = Button2Click
TabOrder = 5 TabOrder = 5
end end

View File

@ -316,14 +316,15 @@ type
FUpdatingItems: Boolean; FUpdatingItems: Boolean;
FOnClick: TNotifyEvent; FOnClick: TNotifyEvent;
FOnGetImageIndex: TGetImageIndexEvent; FOnGetImageIndex: TGetImageIndexEvent;
FOnItemEnter: TNotifyEvent;
FOnItemExit: TNotifyEvent;
FOnSelectionChanged: TNotifyEvent; FOnSelectionChanged: TNotifyEvent;
procedure ItemEnter(Sender: TObject); procedure ItemEnter(Sender: TObject); virtual;
procedure ItemExit(Sender: TObject); procedure ItemExit(Sender: TObject); virtual;
procedure ItemKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); virtual; procedure ItemKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); virtual;
procedure ItemKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); virtual; procedure ItemKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); virtual;
procedure ItemKeyPress(Sender: TObject; var Key: Char); virtual; procedure ItemKeyPress(Sender: TObject; var Key: Char); virtual;
procedure ItemUTF8KeyPress(Sender: TObject; var UTF8Key: TUTF8Char); virtual; procedure ItemUTF8KeyPress(Sender: TObject; var UTF8Key: TUTF8Char); virtual;
procedure ItemResize(Sender: TObject);
procedure SetAutoFill(const AValue: Boolean); procedure SetAutoFill(const AValue: Boolean);
procedure SetColumnLayout(const AValue: TColumnLayout); procedure SetColumnLayout(const AValue: TColumnLayout);
procedure SetColumns(const AValue: integer); procedure SetColumns(const AValue: integer);
@ -347,6 +348,8 @@ type
property ReadOnly: Boolean read FReadOnly write SetReadOnly default false; property ReadOnly: Boolean read FReadOnly write SetReadOnly default false;
property OnClick: TNotifyEvent read FOnClick write FOnClick; property OnClick: TNotifyEvent read FOnClick write FOnClick;
property OnGetImageIndex: TGetImageIndexEvent read FOnGetImageIndex write SetOnGetImageIndex; property OnGetImageIndex: TGetImageIndexEvent read FOnGetImageIndex write SetOnGetImageIndex;
property OnItemEnter: TNotifyEvent read FOnItemEnter write FOnItemEnter;
property OnItemExit: TNotifyEvent read FOnItemExit write FOnItemExit;
property OnSelectionChanged: TNotifyEvent read FOnSelectionChanged write FOnSelectionChanged; property OnSelectionChanged: TNotifyEvent read FOnSelectionChanged write FOnSelectionChanged;
public public
constructor Create(AOwner: TComponent); override; constructor Create(AOwner: TComponent); override;
@ -438,6 +441,8 @@ type
property OnEnter; property OnEnter;
property OnExit; property OnExit;
property OnGetImageIndex; property OnGetImageIndex;
property OnItemEnter;
property OnItemExit;
property OnKeyDown; property OnKeyDown;
property OnKeyPress; property OnKeyPress;
property OnKeyUp; property OnKeyUp;
@ -531,6 +536,8 @@ type
property OnExit; property OnExit;
property OnGetImageIndex; property OnGetImageIndex;
property OnItemClick; property OnItemClick;
property OnItemEnter;
property OnItemExit;
property OnKeyDown; property OnKeyDown;
property OnKeyPress; property OnKeyPress;
property OnKeyUp; property OnKeyUp;
@ -1405,12 +1412,12 @@ end;
procedure TCustomCheckControlGroupEx.ItemEnter(Sender: TObject); procedure TCustomCheckControlGroupEx.ItemEnter(Sender: TObject);
begin begin
DoEnter; if Assigned(FOnItemEnter) then FOnItemEnter(Sender);
end; end;
procedure TCustomCheckControlGroupEx.ItemExit(Sender: TObject); procedure TCustomCheckControlGroupEx.ItemExit(Sender: TObject);
begin begin
DoExit; if Assigned(FOnItemExit) then FOnItemExit(Sender);
end; end;
procedure TCustomCheckControlGroupEx.ItemKeyDown(Sender: TObject; procedure TCustomCheckControlGroupEx.ItemKeyDown(Sender: TObject;
@ -1439,11 +1446,6 @@ begin
UTF8KeyPress(UTF8Key); UTF8KeyPress(UTF8Key);
end; end;
procedure TCustomCheckControlGroupEx.ItemResize(Sender: TObject);
begin
//
end;
function TCustomCheckControlGroupEx.Rows: integer; function TCustomCheckControlGroupEx.Rows: integer;
begin begin
if FItems.Count > 0 then if FItems.Count > 0 then
@ -1853,7 +1855,6 @@ begin
OnKeyUp := @Self.ItemKeyUp; OnKeyUp := @Self.ItemKeyUp;
OnKeyPress := @Self.ItemKeyPress; OnKeyPress := @Self.ItemKeyPress;
OnUTF8KeyPress := @Self.ItemUTF8KeyPress; OnUTF8KeyPress := @Self.ItemUTF8KeyPress;
OnResize := @Self.ItemResize;
ParentFont := True; ParentFont := True;
ReadOnly := Self.ReadOnly; ReadOnly := Self.ReadOnly;
BorderSpacing.CellAlignHorizontal := ccaLeftTop; BorderSpacing.CellAlignHorizontal := ccaLeftTop;