mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-09 18:16:02 +02:00
LCL: add EnabledChanging and EnabledChanged events for TControl. Issue #20300, patch from Silvio Clécio
git-svn-id: trunk@32465 -
This commit is contained in:
parent
4d3cc5e247
commit
ea9e588d42
@ -874,6 +874,8 @@ type
|
||||
chtOnChangeBounds,
|
||||
chtOnVisibleChanging,
|
||||
chtOnVisibleChanged,
|
||||
chtOnEnabledChanging,
|
||||
chtOnEnabledChanged,
|
||||
chtOnKeyDown
|
||||
);
|
||||
|
||||
@ -1230,6 +1232,8 @@ type
|
||||
function DoMouseWheelUp(Shift: TShiftState; MousePos: TPoint): Boolean; virtual;
|
||||
procedure VisibleChanging; virtual;
|
||||
procedure VisibleChanged; virtual;
|
||||
procedure EnabledChanging; virtual;
|
||||
procedure EnabledChanged; virtual;
|
||||
procedure AddHandler(HandlerType: TControlHandlerType;
|
||||
const AMethod: TMethod; AsFirst: boolean = false);
|
||||
procedure RemoveHandler(HandlerType: TControlHandlerType;
|
||||
@ -1398,6 +1402,9 @@ type
|
||||
procedure AddHandlerOnVisibleChanged(const OnVisibleChangedEvent: TNotifyEvent;
|
||||
AsFirst: boolean = false);
|
||||
procedure RemoveHandlerOnVisibleChanged(const OnVisibleChangedEvent: TNotifyEvent);
|
||||
procedure AddHandlerOnEnabledChanged(const OnEnabledChangedEvent: TNotifyEvent;
|
||||
AsFirst: boolean = false);
|
||||
procedure RemoveHandlerOnEnableChanging(const OnEnableChangingEvent: TNotifyEvent);
|
||||
procedure AddHandlerOnKeyDown(const OnKeyDownEvent: TKeyEvent;
|
||||
AsFirst: boolean = false);
|
||||
procedure RemoveHandlerOnKeyDown(const OnKeyDownEvent: TKeyEvent);
|
||||
|
@ -1387,11 +1387,24 @@ end;
|
||||
|
||||
procedure TControl.VisibleChanged;
|
||||
begin
|
||||
{ TODO -cdocking : For docked controls, the docking manager must receive a notification!
|
||||
}
|
||||
{ TODO -cdocking : For docked controls, the docking manager must receive a notification! }
|
||||
DoCallNotifyHandler(chtOnVisibleChanged);
|
||||
end;
|
||||
|
||||
{------------------------------------------------------------------------------
|
||||
procedure TControl.EnabledChanging;
|
||||
------------------------------------------------------------------------------}
|
||||
procedure TControl.EnabledChanging;
|
||||
begin
|
||||
DoCallNotifyHandler(chtOnEnabledChanging);
|
||||
end;
|
||||
|
||||
procedure TControl.EnabledChanged;
|
||||
begin
|
||||
{ TODO -cdocking : For docked controls, the docking manager must receive a notification! }
|
||||
DoCallNotifyHandler(chtOnEnabledChanged);
|
||||
end;
|
||||
|
||||
procedure TControl.AddHandler(HandlerType: TControlHandlerType;
|
||||
const AMethod: TMethod; AsFirst: boolean);
|
||||
begin
|
||||
@ -2662,8 +2675,10 @@ procedure TControl.SetEnabled(Value: Boolean);
|
||||
begin
|
||||
if FEnabled <> Value
|
||||
then begin
|
||||
EnabledChanging;
|
||||
FEnabled := Value;
|
||||
Perform(CM_ENABLEDCHANGED, 0, 0);
|
||||
EnabledChanged;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -4098,6 +4113,18 @@ begin
|
||||
RemoveHandler(chtOnVisibleChanged,TMethod(OnVisibleChangedEvent));
|
||||
end;
|
||||
|
||||
procedure TControl.AddHandlerOnEnabledChanged(
|
||||
const OnEnabledChangedEvent: TNotifyEvent; AsFirst: boolean);
|
||||
begin
|
||||
AddHandler(chtOnEnabledChanged,TMethod(OnEnabledChangedEvent),AsFirst);
|
||||
end;
|
||||
|
||||
procedure TControl.RemoveHandlerOnEnableChanging(
|
||||
const OnEnableChangingEvent: TNotifyEvent);
|
||||
begin
|
||||
RemoveHandler(chtOnEnabledChanged,TMethod(OnEnableChangingEvent));
|
||||
end;
|
||||
|
||||
procedure TControl.AddHandlerOnKeyDown(const OnKeyDownEvent: TKeyEvent;
|
||||
AsFirst: boolean);
|
||||
begin
|
||||
|
Loading…
Reference in New Issue
Block a user