On Tue, 2011-05-24 at 00:35 +0100, Martin wrote: > On 24/05/2011 00:17, Jose Luis wrote: > > On Tue, 2011-05-24 at 00:30 +0200, Mattias Gaertner wrote: > >> On Mon, 23 May 2011 18:06:31 -0400 > >> Jose Luis<[email protected]> wrote: > >> > >>> Hi all: > >>> > >>> I've tried to cast the argument 'Sender' from a call to an event > >>> procedure, but it didn't work. The event is triggered by a TSpeedButton > >>> push, and the code of the action call contain the sentence: > >>> > >>> -- if Sender is TSpeedButton then > >>> -- buttn:=TSpeedButton(Sender); > >>> > >>> The code compile without raising error or warning, but at run-time > >>> Sender is not of TSpeedButton's type, like it is in Delphi. > >> > .... > > procedure TAyDForm.ButtnBHExecute(Sender: TObject); > > var buttn:TSpeedButton; > > indBtn: integer; > > CanChange: boolean; > > begin > > if (Sender is TSpeedButton) then > > Set a breakpoint, and when the execution stops at it evaluate (ctrl-f7 > or watch window) the following > (^^PChar(Sender)^+3)^+1 > > It should give you the real classname > > Hi Martin, thank you for your email;
The watch window says the value of Sender is: 0x8327251 'TAction' #148 What does this mean ?, it was a SpeedButton that triggered the action, but I received a TAction object. Regards, J.L. > -- > _______________________________________________ > Lazarus mailing list > [email protected] > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus > -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
