Re: Grid Control: how properly add data to new row?
- Posted by Dan Moyer <DANIELMOYER at prodigy.net> Feb 10, 2003
- 393 views
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! >