Fabio,
Hi. Have not logged in UT for a week... just got your reply.
I tried option A and it works great!
One question though, isn't DyanamicCurrentControl supposed to change the active control? Is this a bug?
Thanks!
Dennis
>>I dropped a grid on a form, set its RecordSourceType to Alias, then RecordSource to Customer. ColumnCount is 3, first two columns' ControlSource to CustCode field and CustName field. In the 3rd column I removed the textbox control and dropped two commandbuttons and named them cmdDelete and cmdRecall.
>>
>>In the Click event of cmdDelete:
>>
>>
>>DELETE
>>ThisForm.Grid1.Refresh()
>>
>>
>>In the Click event of cmdRecall:
>>
>>
>>RECALL
>>ThisForm.Grid1.Refresh()
>>
>>
>>Then, in the DynamicCurrentControl of the Column3- IIF( DELETED(), "cmdRecall", "cmdDeleted" )
>>Then, Column3.Sparse = .F.
>>
>>
>>Upon running the form, the commandbuttons show up properly according to the Deleted state of the record. Clicking on the buttons the FIRST TIME will work ok (i.e., if you try to click on the Delete button, it will delete the record (DeleteMark = .T.), and cmdRecall becomes the currentcontrol, as expected.)
>>
>>Clicking on the SAME record a second time will no longer work! You have to go to another record then go back for it work.
>>
>>Any ideas on why?
>>
>>Thanks
>
>Because the focus still on the active button.
>( move the mouse out/in of the button cell )
>Solutions:
>a) force to exit
>
>* cmdDeleted.CLICK
>DELETE
>this.Enable = .F.
>* no grid refresh, it is useless
>
>* cmdRecall.CLICK
>RECALL
>this.Enable = .F.
>
>* cmdDeleted.LostFocus
>this.Enable = .T.
>
>* cmdRecall.LostFocus
>this.Enable = .T.
>
>b) use a single graph checkbox
>
>parentColumn.Bound = .F.
>Style = graphical
>picture = 'deleted'
>downpicture = 'recall'
>Checkbox.Controlsource = (DELETED())
>
>* ckeckbox.CLICK
>IF DELETED()
> RECALL
>ELSE
> DELETE
>ENDIF
>checkbox::refresh
>
>
>Fabio