Page 1 of 1

Controls in Listbox

Posted: Thu Jun 29, 2006 4:14 pm
by Greg Gammon
Is it possible to use controls within listboxes? specifically I would like to use a checkbox for logical fields. I saw a Q&A on TWBrowse + Checkboxes, but alas I don't read Espanol.
Greg

Posted: Thu Jun 29, 2006 5:19 pm
by James Bott
Greg,

You have to use a trick to make it appear like it is a control. Below is a copy of my notes on this.

James

----------------------------
Here is how to do a checkbox in a listbox:

You need to use two bimaps for the checkbox, one checked and one unchecked. Load the bitmaps:

hChecked:=loadbitmap( getresources(),"checked")
hUnchecked:= loadbitmap( getrources(),"unchecked")


Define the bitmaps conditionally in the listbox definition:

@0,0 listbox oLbx fields date, description, ;
if(empty(::oTask:completed),hChecked,hUnchecked)

Then you have to define an action when the column is clicked on:

oLbx:blClicked := {| nRow, nCol| ( if(oLbx:nAtCol(nCol)=3,;
toggleCheck(),),oLbx:drawSelect()) }

The above line checks for column 3. If that is the column, then the function toggleCheck() is called. ToggleCheck() toggles the variable and saves the record. Finally, you redraw the line using oLbx:drawSelect().

[Note: You may need to pass nRow and check to make sure it is greater than 15 to avoid triggering the checkbox when the user clicks on the header. See file:///c:\apps\todo\task.prg, method click() for an example.]

Posted: Fri Jun 30, 2006 5:14 pm
by Ehab Samir Aziz
Can I use combobox in a listbox ? I need to edit a record in listboxes using dbcombobox to enter fixed values via each field in the record .

Posted: Fri Jun 30, 2006 6:09 pm
by Greg Gammon
James...thanks for the code...i'll give it a shot in the next week or so.
I can see need for combobox usage in a listbox as well....im thinking that is quite a bit more complicted?
Greg

Posted: Fri Jun 30, 2006 6:12 pm
by James Bott
I have never used a combobox in a browse. Antonio mentioned in generic terms how to do it recently in another message thread. There may be something in the samples directory.

James

Posted: Fri Jun 30, 2006 6:53 pm
by Enrico Maria Giordano
Have a look at how TWBrowse:EditCol() and TWBrowse:lEditCol() methods are implemented.

EMG