GridTableBase

Hello all,
i’m using wxruby 1.9.4 with Grid and the model class: “GridTableBase”
like in the code below. But the method set_table of the grid does’nt
work. Can anyone help me?

require ‘wx’
include Wx

class MyGridTableBase < GridTableBase
def get_attr row, col, attr_kind
##
end

def get_number_rows
0
end

def get_number_cols
0
end

def get_col_label_value col
return “empty”
end

def is_empty_cell row, col
return false
end

def get_value row, col
return “empty”
end
end

g = Grid.new
gt = MyGridTableBase.new
g.set_table gt

i get one of this errors:

TypeError: in method ‘SetTable’, argument 2 of type 'wxGridTableBase

*’

or a “unknown software exception” (0xc0000094) on 0x030dc124 is

thrown

Best Regards,
Franz


This communication and any files or attachments transmitted with it may
contain information that is copyrighted or confidential and exempt from

disclosure under applicable law. It is intended solely for the use
of the individual or the entity to which it is addressed.

If you are not the intended recipient, you are hereby notified that any
use, dissemination, or copying of this communication is strictly
prohibited.

If you have received this communication in error, please notify us at
once so that we may take the appropriate action and avoid troubling you
further.

Thank you for your cooperation. Please contact your local IT staff or
email [email protected]
if you need assistance.

 

Siltronic AG, Sitz München, Hanns-Seidel-Platz 4, 81737
München, Germany. Amtsgericht München HRB 150884


Vorstand: Wilhelm Sittenthaler (Vorsitz), Gerhard Brehm, Paul Lindblad,
Joachim Manke, Michael Peterat. Vorsitzender des Aufsichtsrats:
Peter-Alexander Wacker

If this is all top level code, you need to initialize the Wx::App class
first. When I try this, and change the bottom part where you create the
new
grid and gridtablebase, it runs alright.

App.new do
g = Grid.new
gt = MyGridTablebBase.new
g.set_table(gt)
end

What platform are you running on?

Hello,
ok, it was only a code snippet, but normally it should run in a window,
like in the code below:
I’m running Windows XP and i always get the error:
in `set_table’: in method ‘SetTable’, argument 2 of type
‘wxGridTableBase *’ (ObjectPreviouslyDeleted)

require ‘wx’
include Wx

class MyGridTableBase < GridTableBase

def initialize rowObjs, objType
@objType = objType
@rowObjs = rowObjs
@colNames = [“aa”, “bb”]
end

def get_attr row, col, attr_kind
# todo
“”
end

def get_number_rows
return @rowObjs.size
end

def get_number_cols
return @colNames.size
end

def get_col_label_value col
return @colNames[col]
end

def is_empty_cell row, col
return false
end

def get_value row, col
@rowObjs[col]
end

def set_value row, col, value
end

end

class TestWin < Frame
def initialize *args
super(*args)
StaticText.new self, -1, “Test Test Test”
@g = Grid.new self
@gt = MyGridTableBase.new [“aa”, “bb”], String
@g.set_table(@gt) ## !!!

end

end

class TestApp < Wx::App
def on_init
frame = TestWin.new(nil, -1, “Grid Sample”,Wx::Point.new(10,
100),Wx::Size.new(630,400))
set_top_window(frame)
frame.show()
end
end

TestApp.new.main_loop()

App.new do

end

Best regards,
Franz


From: [email protected]
[mailto:[email protected]] On Behalf Of Mario S.
Sent: Monday, January 28, 2008 12:33 PM
To: General discussion of wxRuby
Subject: Re: [wxruby-users] GridTableBase

If this is all top level code, you need to initialize the
Wx::App class first. When I try this, and change the bottom part where
you create the new grid and gridtablebase, it runs alright.

App.new do
g = Grid.new
gt = MyGridTablebBase.new
g.set_table(gt)
end

What platform are you running on?

On 1/28/08, Irlweg, Franz (ZNT) [email protected]
wrote:


This communication and any files or attachments transmitted with it may
contain information that is copyrighted or confidential and exempt from

disclosure under applicable law. It is intended solely for the use
of the individual or the entity to which it is addressed.

If you are not the intended recipient, you are hereby notified that any
use, dissemination, or copying of this communication is strictly
prohibited.

If you have received this communication in error, please notify us at
once so that we may take the appropriate action and avoid troubling you
further.

Thank you for your cooperation. Please contact your local IT staff or
email [email protected]
if you need assistance.

 

Siltronic AG, Sitz München, Hanns-Seidel-Platz 4, 81737
München, Germany. Amtsgericht München HRB 150884


Vorstand: Wilhelm Sittenthaler (Vorsitz), Gerhard Brehm, Paul Lindblad,
Joachim Manke, Michael Peterat. Vorsitzender des Aufsichtsrats:
Peter-Alexander Wacker

A lot of thanks,

I thought because GridTableBase is a interface, … but we are in Ruby,
and here a interface is a class!

franz

Hi Franz

Irlweg, Franz (ZNT) wrote:

I’m running Windows XP and i always get the error:
*in `set_table’: in method ‘SetTable’, argument 2 of type
'wxGridTableBase ’ (ObjectPreviouslyDeleted)

class MyGridTableBase < GridTableBase

def initialize rowObjs, objType
@objType = objType
@rowObjs = rowObjs
@colNames = [“aa”, “bb”]
end
You need to call super() in your constructor. Sorry the (SWIG-generated)
exception isn’t very informative, but it’s trying to say that the
underlying C++ object hasn’t been initialised.

alex