I changed my statement in stdcontrols from
onchangeint := gtk_signal_connect(gtk_object(fcomponent),'changed',gtk_signal_func(gtkonChange),Self) to
gtk_signal_connect(gtk_object(fcomponent),'changed',gtk_signal_func(TCustomMemo.gtkonChange),Self)
and when I try to compile I get
Panic: Internal compiler error, exiting.
stdcontrols.pp (398,115) Fatal: Internal Error 9999
thoughts?
Shane
>> "Shane Miller" 06/29 10:43 AM >>>
Thanks for the idea. I was hoping to find a "Delphi-like" way of handling it. By doing that I would need to set Self = the gtk object data and that (I think) would start to cause some trouble when I wanted to remove the code from the units and place them into seperate units for GTK.....
Here's another thought.....I was in the shower this morning, like I often am, when I thought of this. Perhaps if I used methods as the procedure to assign the signal to instead of generic procedures then perhaps it would retain it's information. For example:
I tried to move the gtkOnChange and gtkMoveToRow procedures into the TCustomMemo class. Once I did that I added TCUSTOMMEMO. in front of the names of the proceures and tried to compile. I got this error again:
ERROR: Method (variable) and Procedure (variable) are not compatable.
Is there anyway to assign a signal to a METHOD instead of an ordinary procedure?
Shane
>> 06/28 10:58 PM >>>
Shane Miller on 29/06/99 15:14:25
I have set up TMemo to use the "changed" signal and when GTK fires that signal I do :
If assigned FChanged then FChanged(Self);
Obviously when the callback is used, the connection to self is lost and therefore it's children no longer retain their values.
You can associate an arbitrary piece of data with a GTK widget. In programming with GTK in the past, I have used something like
gtk_object_set_data(widget,"Self",self)
In the signal handler you can just do
sig_handler(Widget widget....)
...
self = gtk_object_get_data(GTK_OBJECT(widget),"Self");
This works well in C, but I haven't had any reason to do it under fpc...
OR we could port gtk-- to pascal :-)
J.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Jan Schmidt
Information Technologist - Business Services
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Advitech Pty Limited - Industry's Technology Resource Centre 1 Elizabeth Street, Tighes Hill NSW, Newcastle, Australia PO Box 207, Mayfield 2304 NSW, Australia
Phone +61 2 49616544
Fax +61 2 49693530
http://www.advitech.com.au
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_________________________________________________________________ To unsubscribe: mail with
"unsubscribe" as the Subject
archives at http://www.miraclec.com/list_archives/lazarus
_________________________________________________________________ To unsubscribe: mail with
"unsubscribe" as the Subject
archives at http://www.miraclec.com/list_archives/lazarus