Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
KeyPress ignores NODEFAULT
Message
From
21/06/2001 09:40:40
 
 
General information
Forum:
Visual FoxPro
Category:
Forms & Form designer
Miscellaneous
Thread ID:
00521694
Message ID:
00521873
Views:
13
Vlad,
Thanks. Do you know if VFP7 addresses some of these grid issues?

>Hi!
>
>As about encapsulation, just do following:
>
>* TextBox.Init...
>thisform.AddProperty('ilEditMode')
>
>...
>* ilEditMode_Assign method
>lparameters plValue
>this.ilEditMode = plValue
>thisform.ilEditMode = plValue && keep it in synch
>
>Above way you will have functionality encapsulated in the text box control. You can even define code on the fly for a form KeyPress event, if you want, but this is another story, it requires class definition by using DEFINE CLASS statements structure.
>
>HTH.
>
>>Vlad,
>>
>>SET ESCAPE doesn't make any difference. The problem seems to be related to the fact that the textbox is in a grid. Only the ESC key seems to be a problem since this textbox is a modified version of the InGrid class that uses lots NODEFAULTs that work without problems in the KeyPress.
>>
>>I used your idea of using the form's KeyPress event and check for the ESC key. This works, however I had to move the textbox.ilEditMode property to a form.ilEditMode. I don't like this since it's against encapsulation. But I currently don't see any other solution.
>>
>>Thanks for your help.
>>
>>>Hi!
>>>
>>>Just curious, did you set ESCAPE OFF? If it is ON, I guess it is the problem. If OFF... I guess it is because form handled key pressings separately if control did not handle them in grid. NODEFAULT should prevent this behavior, however, I'm not wondered because there are a lot of otehr problems in controls inside grid - bet you found one more ;)
>>>
>>>Try to put KeyPress code in the form KeyPress event and set form's property KeyPreview to .T.
>>>Another solution - try to use ON KEY LABEL definition or ON ESCAPE.
>>>
>>>HTH.
>>>
>>>
>>>>Hi,
>>>>I found a strange problem with a textbox class that I'm using in a grid. Here's some code from the KeyPress event:
>>>>
>>>>*-- textbox.KeyPress
>>>>LPARAMETERS nKeyCode, nShiftAltCtrl
>>>>
>>>>
>>>>DO CASE
>>>>	 CASE nKeyCode = -1  && F2 = Edit mode
>>>>	 	This.ilEditMode = .t.
>>>>	 CASE nKeyCode=27    && ESC
>>>>	 	IF This.ilEditMode
>>>>	 		*-- if we're in edit mode, reset mode and
>>>>	 		*-- suppress the ESC key
>>>>	 		*-- Note: this code doesn't work if the textbox is in grid!
>>>>			ThisForm.ilEditMode = .f.
>>>>			NODEFAULT
>>>>		ENDIF
>>>>	*-- etc...
>>>>ENDCASE
>>>>
>>>>The idea is to suppress the ESCAPE key if we're in edit mode. NODEFAULT doesn't prevent the form from being closed. The same textbox works perfectly if it's outside of the grid. Is this a known bug or am I missing something?
>>>>
>>>>Any ideas are appreciated.
Daniel
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform