Ruby Forum wxRuby > Some problems with Wx::Grid

Posted by Paul w Florczykowski (sagge)
on 08.04.2008 00:12
Attachment: GridShot.JPG (67,4 KB)
Recently I have been writing an app making some use of the Grid control,
and I have experienced some problems with it. After playing around with
the grid for a while I sometimes succeed to make the cells appear
outside of the window, as if the actual grid would be placed in the top
left corner of the screen, while it actually is in rather small window
in the center of th screen. I attach a screenshot for better clarity.
The occurance of the error is always accompanied  by changing of the
cell "marker"/cursor from beeing thick black rectangle to beeing thin
grey rectangle, and can be provoked by inputing random data in the grid
and scrolling fast to the right by pressing down the left arrow key, and
repeting that couple of times. Im using Ruby 1.8.6 and WxRuby 1.9.5. I
know it may be hard to tell but if anyone sees any errors in my code I'd
be gratefull for pointing them out. Here is how the grid is made:


class ImageGrid < Grid
    def initialize(parent, image)
        @rows = 100;
        @cols = 100
        @img = image

        super(parent, -1)
        self.create_grid(@rows,@cols)
        set_default_cell_alignment(ALIGN_CENTRE, ALIGN_CENTRE)


        # this event will actually come when text is entered in 1 cell
        evt_grid_range_select() do |e|
            # deselection gives whole table...
            top_row = e.get_top_row
            left_col = e.get_left_col
            bottom_row = e.get_bottom_row
            right_col = e.get_right_col
            # after cursor has left the cell... could be because of edit
            cur_row = get_grid_cursor_row
            cur_col = get_grid_cursor_col


            # input, not range selection
            if top_row == 0 and left_col == 0 and bottom_row == @rows-1
and right_col == @cols-1
                # ...
            # range selection, not input
            else
                # ...
            end

        end # ...grid range select event
    end # ...initialize
end # ...class ImageGrid

Best regards,

Paul W Florczykowski