Hi, I''m trying to display text in a ListCtrl_virtual using xrcise. To display text, I implemented on_get_item_text() method in TestListCtrl module. However, no text displayed in my list. I''d appreciate it if you could teach me how to display text. My environment:> ruby -vruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32]> gem list*** LOCAL GEMS *** wx_sugar (0.1.22) wxruby (2.0.1) Here is my sample code: - testlistctrl.xrc <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <resource xmlns="http://www.wxwindows.org/wxxrc" version="2.3.0.1"> <object class="wxFrame" name="TestFrame" subclass="TestFrameBase"> <style>wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL</style> <size>500,300</size> <title></title> <object class="wxListCtrl" name="m_listCtrl3" subclass="TestListCtrl"> <style>wxLC_REPORT|wxLC_VIRTUAL</style> </object> </object> </resource> - testlistctrlbase.rb (xrcise output) class TestFrameBase < Wx::Frame attr_reader :m_listctrl3 def initialize(parent = nil) super() xml = Wx::XmlResource.get xml.flags = 2 # Wx::XRC_NO_SUBCLASSING xml.init_all_handlers xml.load("testlistctrl.xrc") xml.load_frame_subclass(self, parent, "TestFrame") finder = lambda do | x | int_id = Wx::xrcid(x) begin Wx::Window.find_window_by_id(int_id, self) || int_id # Temporary hack to work around regression in 1.9.2; remove # begin/rescue clause in later versions rescue RuntimeError int_id end end @m_listctrl3 = finder.call("m_listCtrl3") @m_listctrl3.extend(TestListCtrl) if self.class.method_defined? "on_init" self.on_init() end end end - testlistctrl.rb (main) #!/usr/bin/ruby require ''rubygems'' require ''wx'' require ''testlistctrlbase.rb'' module TestListCtrl def on_init insert_column(0, ''first'') insert_column(1, ''second'') self.item_count = 10 end def on_get_item_text(item, col) ''foo'' end end class TestFrame < TestFrameBase def initialize super end def on_init @m_listctrl3.on_init # @m_listctrl3.refresh_items(0, 9) end end class TestApp < Wx::App def on_init f = TestFrame.new.show return true end end TestApp.new.main_loop Regards, Ken Uraya -- Posted via http://www.ruby-forum.com/.
Alex Fenton
2010-Apr-21 06:21 UTC
[wxruby-users] how to display ListCtrl_virtual using xrcise
On 18/04/2010 13:10, Ken Uraya wrote:> I''m trying to display text in a ListCtrl_virtual using xrcise. > To display text, I implemented on_get_item_text() method in TestListCtrl > module. > However, no text displayed in my list. > I''d appreciate it if you could teach me how to display text. >I can''t test this right now, but looking over your code, a couple of things to try: - don''t use on_init to do start up - just call the superclass constructor then carry on. - you may need to do set_column_width to set out the columns a
Ken Uraya
2010-Apr-24 12:03 UTC
[wxruby-users] how to display ListCtrl_virtual using xrcise
Hi Alex, Thank you very much for your reply. I applied your two suggestions to my program. However the result was the same. Here is my modified sample code: #!/usr/bin/ruby require ''rubygems'' require ''wx'' require ''testlistctrlbase.rb'' module TestListCtrl def set_list_ctrl insert_column(0, ''first'') insert_column(1, ''second'') self.set_column_width(0, 250) self.set_column_width(1, 250) self.item_count = 10 end def on_get_item_text(item, col) ''foo'' end end class TestFrame < TestFrameBase def setup @m_listctrl3.set_list_ctrl end end class TestApp < Wx::App def on_init f = TestFrame.new f.setup f.show return true end end TestApp.new.main_loop Regards, Ken Uraya -- Posted via http://www.ruby-forum.com/.