[Lazarus] TControl.Click?
Hans-Peter Diettrich
DrDiettrich1 at aol.com
Sat Oct 1 15:07:01 CEST 2011
Mattias Gaertner schrieb:
> On Sat, 01 Oct 2011 03:04:56 +0200
> Hans-Peter Diettrich <DrDiettrich1 at aol.com> wrote:
>
>> I don't understand the logic behind TControl.Click:
>>
>> procedure TControl.Click;
>> begin
>> //DebugLn(['TControl.Click ',DbgSName(Self)]);
>> if (not (csDesigning in ComponentState)) and (ActionLink <> nil) and
>> ((Action=nil) or (@FOnClick <> @Action.OnExecute) or
>> Assigned(FOnClick)) then
>> ActionLink.Execute(Self)
>> else
>> if Assigned(FOnClick) then
>> FOnClick(Self);
>> end;
>>
>> This IMO will invoke ActionLink.Execute if (a different) FOnClick is
>> assigned - so far okay. But FOnClick will *not* be invoked then (even if
>> different), and it will be invoked *always* in design state.
>>
>> Is it really okay to invoke an user-supplied OnClick handler in design
>> state?
>
> No.
Then the question remains, why Action hides the OnClick handler, at
runtime? Is this required by Delphi compatibility?
>> I also wonder what's the difference or relationship between Action and
>> ActionLink - can somebody explain? Does ActionLink (when assigned) take
>> precedence over Action?
>
> See TControl.GetAction.
Thanks for the hint :-)
DoDi
More information about the Lazarus
mailing list