Help, I have a foxGUI gernerated file named monitorwindow and a ruby file called sqlite3_calls.rb I want to have my monitorwindow make calls to sqlite3_calls.rb and pass through parameters to it so i can get data to display to the screen. I have tried making the code (which currently has only ONE method in it called rec_to_find) a class and a module but cannot get the link to work. based on the success i had with example ONE of the user guide ( although it only used a mouse click) i get this error. /sqlite3_calls.rb:18:in `rec_to_find'': undefined method `execute'' for nil:NilClass (NoMethodError) from monitorscreen.rbw:65:in `construct_widget_tree'' from C:/Ruby1.8/lib/ruby/gems/1.8/gems/fxruby-1.6.16-x86-mswin32-60/lib/fox16/responder2.rb:55:in `call'' from C:/Ruby1.8/lib/ruby/gems/1.8/gems/fxruby-1.6.16-x86-mswin32-60/lib/fox16/responder2.rb:55:in `onHandleMsg'' from monitorscreen.rbw:206:in `run'' from monitorscreen.rbw:206>Exit code: 1here is the code in sqlite3_calls.rb - as a ruby program this works - well as a definition of class it does. require ''sqlite3.rb'' module Dbase def initialize @db = SQLite3::Database.new( "customer" ) end def rec_to_find(table, colname, tofind) stmt = "select cust_nos, caddress, cname, contact, notes, on_stop, phone_nos from #{table} where #{colname} = ?" row = @db.execute(stmt,tofind) # this is the line it''s borking on - why?? @rec = [] row.each do|fld| @rec = fld end return @rec end end I ahve tried using :: insetad of the fullstop but i get the same error!! also tried having the require sqlite3.rb in the file below but it fails there too - same error. here is some of the code from the mainscreen.rb file. # source generated by foxGUIb 1.0.0 require ''sqlite3_calls.rb'' class MainWindow def initialize( parent) extend Dbase @mydb = Dbase construct_widget_tree( parent) init if respond_to? ''init'' end def construct_widget_tree( parent) code I''ve inserted to get the customer data returned. row = rec_to_find(''customer'', ''cust_nos'', @dice_code.text) any help would be appreciated. dave. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/fxruby-users/attachments/20090629/477faecc/attachment.html>
Yes I thought so too and tried doing this extend Dbase @db = Dbase.new but it borks because the code is a module not a class! so how would i use it as a class and thus eliminate the problem. I''ve tried all i know (with my limited knowledge of fxruby/foxGUI & ruby) Tried to make sqlite3_calls.rb a subclass of monitorscreen.rb which is generated by foxGUI but not managed it. your help appriciated. Dave. --- On Tue, 30/6/09, Meinrad Recheis <meinrad.recheis at gmail.com> wrote:> From: Meinrad Recheis <meinrad.recheis at gmail.com> > Subject: Re: [fxruby-users] trouble with program code separation > To: fxruby-users at rubyforge.org > Received: Tuesday, 30 June, 2009, 2:22 AM > hi dave, at db is nil at the time > rec_to_find is called. make sure it is initialized > correctly.-- henon > > On Mon, Jun 29, 2009 at 12:20 PM, > dave L <dglnz at yahoo.com> > wrote: > > Help, > > I have a foxGUI gernerated file named monitorwindow and a > ruby file called sqlite3_calls.rb > > > I want to have my monitorwindow make calls to > sqlite3_calls.rb and pass through parameters to it so i can > get data to display to the screen. > > I have tried making the code (which currently has only ONE > method in it called rec_to_find) a class and a > module but cannot get the link to work. > > > based on the success i had with example ONE of the user > guide ( although it only used a mouse click) i get this > error. > > /sqlite3_calls.rb:18:in `rec_to_find'': undefined method > `execute'' for nil:NilClass (NoMethodError) > > ??? from monitorscreen.rbw:65:in > `construct_widget_tree'' > ??? from > > C:/Ruby1.8/lib/ruby/gems/1.8/gems/fxruby-1.6.16-x86-mswin32-60/lib/fox16/responder2.rb:55:in > `call'' > ??? from > C:/Ruby1.8/lib/ruby/gems/1.8/gems/fxruby-1.6.16-x86-mswin32-60/lib/fox16/responder2.rb:55:in > `onHandleMsg'' > > ??? from monitorscreen.rbw:206:in `run'' > ??? from monitorscreen.rbw:206 > >Exit code: 1 > > here is the code in sqlite3_calls.rb - as a > ruby program this works - well as a definition of class it > does. > > > require ''sqlite3.rb'' > > module Dbase ? > ? def initialize > ??? @db = SQLite3::Database.new( "customer" ) > ?end > ? > ?def rec_to_find(table, colname, tofind) > ? stmt = "select cust_nos, caddress, cname, contact, > notes, on_stop, phone_nos from #{table} where #{colname} > ?" > > ? row = @db.execute(stmt,tofind) # this is the line > it''s borking on - why?? > ??? @rec > = []??? > ?? row.each do|fld|?????????? > ???? @rec = fld > ?? end?? > ?? return @rec?? > ?end > end > > I ahve tried using :: insetad of the fullstop but i get the > same error!! > > also tried having the require sqlite3.rb in the file below > but it fails there too - same error. > > here is some of the code from the mainscreen.rb file. > > # source generated by foxGUIb 1.0.0 > require ''sqlite3_calls.rb'' > > class MainWindow > ? > ??? def initialize( parent)?? > ??? ? ? extend Dbase??? > > ? ?? ?? @mydb = Dbase > ??? ??? construct_widget_tree( parent) > ??? ??? init if respond_to? ''init'' > ??? end > ??? > > ??? def construct_widget_tree( parent) > > code I''ve inserted to get the customer data returned. > > row = rec_to_find(''customer'', ''cust_nos'', > @dice_code.text) > > any help would be appreciated. > > > dave. > > > > > Need mail bonding? Bring all your contacts to > Yahoo!Xtra with TrueSwitch > > _______________________________________________ > > fxruby-users mailing list > > fxruby-users at rubyforge.org > > http://rubyforge.org/mailman/listinfo/fxruby-users > > > > -- > -- > Git# --> > Git for .NET > > > > > > > > -----Inline Attachment Follows----- > > _______________________________________________ > fxruby-users mailing list > fxruby-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/fxruby-users
Henon, Just looking at the code snippet below and want to ask if i should have everything in sqlite3_calls.rb wrapped in a init define as that''s what got my 1st sample program working from the user guide. e.g. module Dbase def init # original code put in here end end rgds, dave. --- On Tue, 30/6/09, Meinrad Recheis <meinrad.recheis at gmail.com> wrote:> From: Meinrad Recheis <meinrad.recheis at gmail.com> > Subject: Re: [fxruby-users] trouble with program code separation > To: fxruby-users at rubyforge.org > Received: Tuesday, 30 June, 2009, 2:22 AM > hi dave, at db is nil at the time > rec_to_find is called. make sure it is initialized > correctly.-- henon > > On Mon, Jun 29, 2009 at 12:20 PM, > dave L <dglnz at yahoo.com> > wrote: > > Help, > > I have a foxGUI gernerated file named monitorwindow and a > ruby file called sqlite3_calls.rb > > > I want to have my monitorwindow make calls to > sqlite3_calls.rb and pass through parameters to it so i can > get data to display to the screen. > > I have tried making the code (which currently has only ONE > method in it called rec_to_find) a class and a > module but cannot get the link to work. > > > based on the success i had with example ONE of the user > guide ( although it only used a mouse click) i get this > error. > > /sqlite3_calls.rb:18:in `rec_to_find'': undefined method > `execute'' for nil:NilClass (NoMethodError) > > ??? from monitorscreen.rbw:65:in > `construct_widget_tree'' > ??? from > > C:/Ruby1.8/lib/ruby/gems/1.8/gems/fxruby-1.6.16-x86-mswin32-60/lib/fox16/responder2.rb:55:in > `call'' > ??? from > C:/Ruby1.8/lib/ruby/gems/1.8/gems/fxruby-1.6.16-x86-mswin32-60/lib/fox16/responder2.rb:55:in > `onHandleMsg'' > > ??? from monitorscreen.rbw:206:in `run'' > ??? from monitorscreen.rbw:206 > >Exit code: 1 > > here is the code in sqlite3_calls.rb - as a > ruby program this works - well as a definition of class it > does. > > > require ''sqlite3.rb'' > > module Dbase ? > ? def initialize > ??? @db = SQLite3::Database.new( "customer" ) > ?end > ? > ?def rec_to_find(table, colname, tofind) > ? stmt = "select cust_nos, caddress, cname, contact, > notes, on_stop, phone_nos from #{table} where #{colname} > ?" > > ? row = @db.execute(stmt,tofind) # this is the line > it''s borking on - why?? > ??? @rec > = []??? > ?? row.each do|fld|?????????? > ???? @rec = fld > ?? end?? > ?? return @rec?? > ?end > end > > I ahve tried using :: insetad of the fullstop but i get the > same error!! > > also tried having the require sqlite3.rb in the file below > but it fails there too - same error. > > here is some of the code from the mainscreen.rb file. > > # source generated by foxGUIb 1.0.0 > require ''sqlite3_calls.rb'' > > class MainWindow > ? > ??? def initialize( parent)?? > ??? ? ? extend Dbase??? > > ? ?? ?? @mydb = Dbase > ??? ??? construct_widget_tree( parent) > ??? ??? init if respond_to? ''init'' > ??? end > ??? > > ??? def construct_widget_tree( parent) > > code I''ve inserted to get the customer data returned. > > row = rec_to_find(''customer'', ''cust_nos'', > @dice_code.text) > > any help would be appreciated. > > > dave. > > > > > Need mail bonding? Bring all your contacts to > Yahoo!Xtra with TrueSwitch > > _______________________________________________ > > fxruby-users mailing list > > fxruby-users at rubyforge.org > > http://rubyforge.org/mailman/listinfo/fxruby-users > > > > -- > -- > Git# --> > Git for .NET > > > > > > > > -----Inline Attachment Follows----- > > _______________________________________________ > fxruby-users mailing list > fxruby-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/fxruby-users
Thanks Meinrad for your reply, I had tried doing something like this but it didn''t work in the last couple of days - Grrrr. Now before when i had the code inside the foxGUIb generated file when i entered something into the textfield which is named @acc_code I had it so that the value was put into a label (which just happened to hold the word Address on the screen - this was more for me to see that the enter key worked or not. Now the code below this fails! - so it''s two steps forward 1 back. I readily admit that i''m not the brightest programmer so what seems logical sometimes for me when it''s not shown is a mistery hense i go a bit overboard sometimes to explain my problem. So I''ve commented out all references to my program sqlite3_calls.rb to try and get the keypress to work that is when the ENTER key is press i want the value to be shown on a label just to prove it works. Once that''s done then it''s one step to uncomment the references to SQLite3_calls and pass the value through to get a customer record returned and to have some values displayed on screen. My current code for MainWindow - foxGUIb generated code & my hand coded event handler code. yours or that of others on this list would be greatly appreciated ________________________________ From: Meinrad Recheis <meinrad.recheis at gmail.com> To: fxruby-users at rubyforge.org Sent: Thursday, 2 July, 2009 9:35:17 AM Subject: Re: [fxruby-users] trouble with program code separation dave, I don''t see the whole code, so I can not exactly tell you how to fix your problem. maybe a small example will help you: class MainWindow # generated by foxguib def initialize( parent) construct_widget_tree( parent) init if respond_to? ''init'' end def construct_widget_tree( parent) # here the gui is created by foxguib code end end # you don''t want to change the above autogenerated class in case you want to change it later and regenerate it. # everything that MainWindow should do that is not provided by foxguib goes in a subclass: class DBWindow < MainWindow # your code def initialize(parent) super # do your stuff here for example: @mydb = Dbase.new end end hth, -- Henon lot''s snippted -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/fxruby-users/attachments/20090702/2f6731dc/attachment.html> -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: two_files_in_one.txt URL: <http://rubyforge.org/pipermail/fxruby-users/attachments/20090702/2f6731dc/attachment.txt>
Have you run my code? what results did YOU get - text entered appear in label4 (aka Address)? for me running the program (has the code generated by foxGUIb) it fails to pass any event triggers to the code i had written so when i type in 12345 i see it in the textfield but the text in label4 (Address) is unchanged and when the enter key is pressed again no change to the text displayed (changing my code from a class to a module does nothing, changing the include to an extend does nothing either). From my experiments of trying different things to try and get the two to interact I have no events being fired OR passed through to my code. could you _or_ anyone else using foxGUIb1.0.0 try the code attached in my previous email see what results they get? this is VERY frustrating for me as i did have the code working when the event code was inside of foxGUIb generated code. Dave. ________________________________ From: Meinrad Recheis <meinrad.recheis at gmail.com> To: fxruby-users at rubyforge.org Sent: Saturday, 4 July, 2009 9:41:37 PM Subject: Re: [fxruby-users] trouble with program code separation the code seems correct to me, what problem are you having? On Thu, Jul 2, 2009 at 12:37 PM, dave L <dglnz at yahoo.com> wrote: Thanks Meinrad for your reply,> >I had tried doing something like this but it didn''t work in the last couple of days - Grrrr. > >Now before when i had the code inside the foxGUIb generated file when i entered something into the textfield which is named @acc_code I had it so that the value was put into a label (which just happened to hold the word Address on the screen - this was more for me to see that the enter key worked or not. > >Now the code below this fails! - so it''s two steps forward 1 back. > >I readily admit that i''m not the brightest programmer so what seems logical sometimes for me when it''s not shown is > a mistery hense i go a bit overboard sometimes to explain my problem. > >So > I''ve commented out all references to my program sqlite3_calls.rb to try and get the keypress to work >that is when the ENTER key is press i want the value to be shown on a label just to prove it works. > >Once that''s done then it''s one step to uncomment the references to SQLite3_calls and pass the value through to get a customer record returned and to have some values displayed on screen. > >My current code for MainWindow - foxGUIb generated code & my hand coded event handler code. > >yours or that of others on this list would be greatly appreciated > > > >________________________________>From: Meinrad Recheis <meinrad.recheis at gmail.com> > >To: fxruby-users at rubyforge.org >Sent: Thursday, 2 July, > 2009 9:35:17 AM > >Subject: Re: [fxruby-users] trouble with program code separation > > >dave, >I don''t see the whole code, so I can not exactly tell you how to fix your problem. maybe >>a small example will help you: > > >class MainWindow # generated by foxguib > def initialize( parent) > construct_widget_tree( > parent) > init if respond_to? ''init'' > end > > > > def construct_widget_tree( parent) > # here the gui is created by foxguib code > end >end > ># you don''t want to change the above autogenerated class in case you want to change it later and regenerate it. ># everything that MainWindow should do that is not provided by foxguib goes in a subclass: > > >class DBWindow < MainWindow # your code > def initialize(parent) > super > # do your stuff here for example: > @mydb = Dbase.new > end >> end >hth, >-- Henon > >lot''s > snippted > >> > > Email slow, clunky, unreliable? Switch to Yahoo!Xtra Mail, New Zealand''s new email address. >>_______________________________________________ >>fxruby-users mailing list >fxruby-users at rubyforge.org >http://rubyforge.org/mailman/listinfo/fxruby-users >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/fxruby-users/attachments/20090704/985e5e87/attachment.html>
Just tried this as an experiment. what i did was to change the init if respond_to? ''init'' line within the foxGUIb code to a puts ''yes'' if respond_to? ''init''. Now using Sicite i expected to see in the output screen yes displayed either during program execution or after the program is closed. But nothing happened!! so i can only think that the generated code doesn''t know anything about my code. If that is so then i copied and pasted the unit test across to my code and ran my code and got no response either. dave. # source generated by foxGUIb 1.0.0 class MainWindow def initialize( parent) construct_widget_tree( parent) puts ''yes'' if respond_to? ''init'' end def construct_widget_tree( parent) @topwin FX::MainWindow.new(parent){|w| @mainWindow=w w.wdg_name=''mainWindow'' My code written tonight after viewing your reply. require ''monitorscreen.rb'' #require ''sqlite3_calls.rb'' #include Dbase class Fxwindow_code < MainWindow def initialize(parent) super #@mydb = dbase.new end def init # just put the characters to a label on the screen - easy debug solution for me to see # if the user entry gets passed through # - when there is a key press - SEL_KEYRELEASE message is sent # ________________________________ From: dave L <dglnz at yahoo.com> To: fxruby-users at rubyforge.org Sent: Sunday, 5 July, 2009 4:41:12 PM Subject: Re: [fxruby-users] trouble with program code separation Have you run my code? what results did YOU get - text entered appear in label4 (aka Address)? for me running the program (has the code generated by foxGUIb) it fails to pass any event triggers to the code i had written so when i type in 12345 i see it in the textfield but the text in label4 (Address) is unchanged and when the enter key is pressed again no change to the text displayed (changing my code from a class to a module does nothing, changing the include to an extend does nothing either). From my experiments of trying different things to try and get the two to interact I have no events being fired OR passed through to my code. could you _or_ anyone else using foxGUIb1.0.0 try the code attached in my previous email see what results they get? this is VERY frustrating for me as i did have the code working when the event code was inside of foxGUIb generated code. Dave. ________________________________ From: Meinrad Recheis <meinrad.recheis at gmail.com> To: fxruby-users at rubyforge.org Sent: Saturday, 4 July, 2009 9:41:37 PM Subject: Re: [fxruby-users] trouble with program code separation the code seems correct to me, what problem are you having? On Thu, Jul 2, 2009 at 12:37 PM, dave L <dglnz at yahoo.com> wrote: Thanks Meinrad for your reply,> >I had tried doing something like this but it didn''t work in the last couple of days - Grrrr. > >Now before when i had the code inside the foxGUIb generated file when i entered something into the textfield which is named @acc_code I had it so that the value was put into a label (which just happened to hold the word Address on the screen - this was more for me to see that the enter key worked or not. > >Now the code below this fails! - so it''s two steps forward 1 back. > >I readily admit that i''m not the brightest programmer so what seems logical sometimes for me when it''s not shown is > a mistery hense i go a bit overboard sometimes to explain my problem. > >So > I''ve commented out all references to my program sqlite3_calls.rb to try and get the keypress to work >that is when the ENTER key is press i want the value to be shown on a label just to prove it works. > >Once that''s done then it''s one step to uncomment the references to SQLite3_calls and pass the value through to get a customer record returned and to have some values displayed on screen. > >My current code for MainWindow - foxGUIb generated code & my hand coded event handler code. > >yours or that of others on this list would be greatly appreciated > > > >________________________________>From: Meinrad Recheis <meinrad.recheis at gmail.com> > >To: fxruby-users at rubyforge.org >Sent: Thursday, 2 July, > 2009 9:35:17 AM > >Subject: Re: [fxruby-users] trouble with program code separation > > >dave, >I don''t see the whole code, so I can not exactly tell you how to fix your problem. maybe >>a small example will help you: > > >class MainWindow # generated by foxguib > def initialize( parent) > construct_widget_tree( > parent) > init if respond_to? ''init'' > end > > > > def construct_widget_tree( parent) > # here the gui is created by foxguib code > end >end > ># you don''t want to change the above autogenerated class in case you want to change it later and regenerate it. ># everything that MainWindow should do that is not provided by foxguib goes in a subclass: > > >class DBWindow < MainWindow # your code > def initialize(parent) > super > # do your stuff here for example: > @mydb = Dbase.new > end >> end >hth, >-- Henon > >some > snipped >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/fxruby-users/attachments/20090704/236f9313/attachment.html>