Re: Grid Control: how properly add data to new row?

new topic     » goto parent     » topic index » view thread      » older message » newer message

Jonas,

Ok, I'll try the repaintWindow, because I had noticed a minor problem with
the row not showing up until I moved the horiz scroll; however, *visibly*
displaying the whole new row is *not* the problem I'm having.

My problem is *what* gets put into the last column of a newly added row;  it
puts the *same* data into my last column as was put into my first column,
even if I tell it to put exact text instead of whatever's in a variable.

Dan Moyer

--<problem demo code follows>

--  code generated by Win32Lib IDE v0.14.2

include Win32lib.ew
without warning

----------------------------------------------------------------------------
----
--  Window Window1
constant Window1 = createEx( Window, "Grid Control with CheckBoxes", 0,
Default, Default, 600, 300, 0, 0 )
constant PushButton2 = createEx( PushButton, "Select File", Window1, 484,
20, 88, 28, 0, 0 )
---------------------------------------------------------
----------------------------------------------------------------------------
----
include eugrid.ew
atom void

integer aGrid, colFileName, colCB1, colCB2, colFileDir

-- Create grid, create parms=(parent, x, y, width, height, show_window)
aGrid = EGW_CreateGrid( Window1, 10, 15, 450, 200, True )

-- no row header
void = EGW_SetGridProperty( aGrid, EGW_ROW_HEADER_WIDTH, 0)


-- Filename column - static text, left-aligned by default
colFileName  = EGW_AddColumn( aGrid, "FileName", 200, EGW_LAST, EGW_STATIC,
1 )
void = EGW_SetColumnProperty(aGrid, colFileName, EGW_COL_ALIGN, EGW_CENTER)
--void   = EGW_SetColumnProperty( aGrid, colFileName, EGW_COL_WIDTH, 75 )

-- checkbox columns:
colCB1 = EGW_AddColumn(aGrid, "Action1", 100, EGW_LAST, EGW_CHECKBOX, 2 )
void = EGW_SetColumnProperty(aGrid, colCB1, EGW_COL_ALIGN, EGW_CENTER)
colCB2 = EGW_AddColumn(aGrid, "Action2", 100, EGW_LAST, EGW_CHECKBOX, 3 )
void = EGW_SetColumnProperty(aGrid, colCB2, EGW_COL_ALIGN, EGW_CENTER)

-- file directory column:
colFileDir  = EGW_AddColumn( aGrid, "FileDirectory", 400, EGW_LAST,
EGW_STATIC, 1 )
void = EGW_SetColumnProperty(aGrid, colFileDir, EGW_COL_ALIGN, EGW_CENTER)
----------------------------------------------------------------------------
----
procedure PushButton2_onClick (integer self, integer event, sequence
params)--params is ()
seq fName, dirName, fullPathName, temp
seq newRow
int row, posBS  -- posBS is position of back-slash in file name

temp = {}

  -- get a file name
  fName = getOpenFileName( Window1, current_dir() & "\\", "" )
  -- entered a file name?
  if length( fName ) = 0 then
     return
  end if

  -- separate filename from dirName:
  if find('\\',fName) then -- found back-slash
     -- work from end, remove chars after last back-slash:
     for n = length(fName) to 1 by -1do
      if not equal('\\',fName[n]) then
         temp = prepend(temp,fName[n])
       else
         posBS = n
        exit
      end if
     end for

     fullPathName = fName
     dirName = fName[1..posBS -1]
     fName = temp
   else
     dirName = ""
   end if

  newRow = {fName,"","",dirName }

-- example relating to adding new row:
--global constant EmptyGridRow = {"", 2, "", "", 0, True}

  -- Add new row to grid:
  row = EGW_AddDataRow(aGrid, newRow, EGW_LAST)
  void = EGW_SetDataRowFlag(aGrid, row, EGW_ROW_NEW, True)

  -- Go to it?
--  void = EGW_ScrollToCell(aGrid, EGW_LAST, colFileName)


end procedure
setHandler( PushButton2, w32HClick, routine_id("PushButton2_onClick"))


WinMain( Window1,Normal )



----- Original Message -----
From: "Jonas Temple" <jktemple at yhti.net>
To: "EUforum" <EUforum at topica.com>
Sent: Sunday, February 09, 2003 7:35 PM
Subject: RE: Grid Control: how properly add data to new row?


>
> Dan,
>
> Phil is aware of a couple of issues that sound like it might relate to
> your problem and I think he's working on a fix for this.
>
> In the meantime, I will try and help, if possible.  Could you send a
> more complete example of the code you're having a problem with?
>
> Also, here's one thing you might want to try.  I don't have the exact
> code in front of me but you might try using the repaintWindow() function
> after adding the new grid row.  This might cause the new row to display
> properly.
>
> Jonas
> Dan Moyer wrote:
> > Phil,
> >
> > I'm trying out your Grid Control, however, I am having a problem filling
> > things in the grid properly, in that when I add a new row, the last
> > column
> > doesn't show
> > anything except the same thing that's in the first column.
> >
> > Maybe you or someone who has used the GridControl can see what I'm doing
> > wrong?
> >
> > --<code snippet follows:>
> >
> > -- grid column layout is:  file name, checkbox1, checkbox2, directory
> > name
> >   newRow = {fName,"","",dirName }
> > -- dirName & fName DO have respective proper content, I checked
> >
> > --global constant EmptyGridRow = {"", 2, "", "", 0, True}  -- example
> > from a
> > demo
> >
> >         --for a different layout
> >
> >   -- Add new row to grid:
> >   row = EGW_AddDataRow(aGrid, newRow, EGW_LAST)
> >   void = EGW_SetDataRowFlag(aGrid, row, EGW_ROW_NEW, True)
> >
> > -- also fails to include dirName if I comment out the above "void"
> > function
> >
> > Dan Moyer
> >
> >
>
>
> TOPICA - Start your own email discussion group. FREE!
>

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu