RE: Grid Control: Check box state reverse reported?
- Posted by Phil Russell <pg_russell at lineone.net> Feb 13, 2003
- 519 views
Dan, It is not a timing problem. What is happening is that EGW_CLICK is sent when you press the mouse button down, but the value in the checkbox only changes when the mouse button comes up (this is the default behaviour for checkboxes I believe). I had been meaning to change this in the next release to add two messages EGW_LEFTBUTTONDOWN and EGW_LEFTBUTTONUP to cope with this. As it is a minor change I will try and do this in the next day or so and post the change to Rob. Can't think of a workaround in the meantime I am afraid... Regards, Phil Dan Moyer wrote: > Phil, > > When I now check for the state of a newly clicked checkbox, I get the > opposite of what it is. I could of course just reverse them for use, > but > I'm worried it could be some kind of time anomaly which could act > differently on differing systems. Modification below at the end of your > last code shows this. > > Dan > > -- 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 ) > constant PushButton3 = createEx( PushButton, "Process Data", Window1, > 484, > 72, 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) > > --***Phil: Make grid look a bit more like a list view > void = EGW_SetGridProperty( aGrid, EGW_NULL_GRID_COLOR, BrightWhite) > void = EGW_SetGridProperty( aGrid, EGW_LINE_COLOR, BrightWhite) > void = EGW_SetGridProperty( aGrid, EGW_CELL_BORDER, False) > > -- Filename column > -- ***Phil: Make this a protected edit field to get highlighting > --colFileName = EGW_AddColumn( aGrid, "FileName", 200, > EGW_LAST,EGW_STATIC, > 1 ) > colFileName = EGW_AddColumn( aGrid, "FileName", 100, EGW_LAST, EGW_EDIT, > 1 ) > --void = EGW_SetColumnProperty(aGrid, colFileName, > EGW_COL_ALIGN,EGW_CENTER) > void = EGW_SetColumnProperty(aGrid, colFileName, EGW_COL_EDITABLE, > False) > --void = EGW_SetColumnProperty( aGrid, colFileName, EGW_COL_WIDTH, 75 ) > > -- checkbox columns: > colCB1 = EGW_AddColumn(aGrid, "Action1", 60, EGW_LAST, EGW_CHECKBOX, 2 ) > void = EGW_SetColumnProperty(aGrid, colCB1, EGW_COL_ALIGN, EGW_CENTER) > colCB2 = EGW_AddColumn(aGrid, "Action2", 60, EGW_LAST, EGW_CHECKBOX, 3 ) > void = EGW_SetColumnProperty(aGrid, colCB2, EGW_COL_ALIGN, EGW_CENTER) > > -- file directory column: > colFileDir = EGW_AddColumn( aGrid, "FileDirectory", 226, EGW_LAST, > EGW_STATIC, 4 ) > --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 <snip>