mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-03 18:01:29 +02:00
lcl: don't trigger the onClick event for the unchecked radio buttons (bug #0014989)
git-svn-id: trunk@26761 -
This commit is contained in:
parent
fc9813f9cf
commit
d5c10dfaa2
@ -56,12 +56,11 @@ procedure TCustomCheckBox.DoChange(var Msg);
|
||||
var
|
||||
NewState: TCheckBoxState;
|
||||
begin
|
||||
//debugln('TCustomCheckBox.DoChange START ',dbgsname(Self),' ',dbgs(ord(FState)));
|
||||
NewState := RetrieveState;
|
||||
if FState = NewState then exit;
|
||||
FState := NewState;
|
||||
//debugln('TCustomCheckBox.DoChange CHANGED ',dbgsname(Self),' ',dbgs(ord(FState)));
|
||||
inherited Click; // emulate delphi OnClick behaviour
|
||||
// emulate delphi OnClick behaviour
|
||||
DoClickOnChange;
|
||||
end;
|
||||
|
||||
class procedure TCustomCheckBox.WSRegisterClass;
|
||||
@ -156,8 +155,8 @@ begin
|
||||
TCustomAction(Action).Checked := FState = cbChecked;
|
||||
ApplyChanges;
|
||||
DoOnChange;
|
||||
if (not ClicksDisabled) then
|
||||
inherited Click;
|
||||
if not ClicksDisabled then
|
||||
DoClickOnChange;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -248,6 +247,11 @@ begin
|
||||
Params.Style := Params.Style or BS_3STATE;
|
||||
end;
|
||||
|
||||
procedure TCustomCheckBox.DoClickOnChange;
|
||||
begin
|
||||
inherited Click;
|
||||
end;
|
||||
|
||||
function TCustomCheckBox.DialogChar(var Message: TLMKey): boolean;
|
||||
begin
|
||||
if IsAccel(Message.CharCode, Caption) and CanFocus then
|
||||
|
@ -105,6 +105,12 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TRadioButton.DoClickOnChange;
|
||||
begin
|
||||
if State = cbChecked then
|
||||
inherited DoClickOnChange;
|
||||
end;
|
||||
|
||||
procedure TRadioButton.CreateParams(var Params: TCreateParams);
|
||||
begin
|
||||
inherited CreateParams(Params);
|
||||
|
@ -1189,6 +1189,7 @@ type
|
||||
protected
|
||||
class procedure WSRegisterClass; override;
|
||||
procedure Click; override;
|
||||
procedure DoClickOnChange; virtual;
|
||||
function RetrieveState: TCheckBoxState;
|
||||
procedure InitializeWnd; override;
|
||||
procedure Toggle; virtual;
|
||||
@ -1323,6 +1324,7 @@ type
|
||||
procedure SetChecked(Value: Boolean); override;
|
||||
procedure DoChange(var Msg); message LM_CHANGED;
|
||||
procedure DoApplyChanges;
|
||||
procedure DoClickOnChange; override;
|
||||
procedure CreateParams(var Params: TCreateParams); override;
|
||||
public
|
||||
constructor Create(TheOwner: TComponent); override;
|
||||
|
Loading…
Reference in New Issue
Block a user