Hi,
[Sorry for the cross-posting, I've only just found this group].
I'm having difficulty passing an object to an event handler in Perl.
I have two events which populate a screen with patient details
Either by pressing search and returning a value:
Wx::Event::EVT_BUTTON(
$self,
$self->{Ctl_Patient_Search_Btn}->GetId,
\&call_lookup_patient);
or by exiting a field:
Wx::Event::EVT_KILL_FOCUS(
$self->{Ctl_Patient_Ref_0_Txt},
\&call_lookup_patient_id);
* call_lookup_patient_id and
* call_lookup_patient
are nearly identical. Both of them look up a patient's details
and populate a form ($self). The issue is that
EVT_BUTTON passes $self to "call_lookup_patient" and so is
successful in building the form while
EVT_KILL_FOCUS only passes $self->{Ctl_Patient_Ref_0_Txt}
without the rest of the form and so it can't be populated.
My question is how to access $self when it is not passed?
Can I create an anonymous subroutine to pass a global variable like this
($gl_self is a global version of $self):
Wx::Event::EVT_KILL_FOCUS($self->{Ctl_Patient_Ref_0_Txt},
\&{$gl_self
= $self;
call_lookup_patient_id;
$gl_self = $self;}
Thanks for your help.
Regards
Steve