Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Why does {alt+} throw away activecontrol?
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Gestionnaire d'écran & Écrans
Divers
Thread ID:
00668976
Message ID:
00669937
Vues:
19
>Hi John,
>What I don't understand:
>Why is ActiveControl empty in my chkBox.When() if I used a hotkey to move the cursor to the chkBox? If I click the chkBox with the mouse, ActiveControl is not empty?
>
>Are you saying that just using {alt+?} puts me into the menu (throwing away the ActiveControl in the process), then returns to the form to continue trying to move the focus to the control indicated by the {alt+?}?

Bill,
basicly that is exactly what is happening. In your code you are checking the active control at the point the Alt+... has moved the focus off the form and onto the menu.

John.

>
>
>>Bill,
>> any time you use "Thisform.ActiveControl" always use it this way:
>>
>>if type('Thisform.ActiveControl') = 'O'
>> lo = Thisform.ActiveControl
>>endif
>>
>>This will stop the error you are getting. If no control on the form has focus you will get the error if you don't check it first. I think the menu commands are fine except that the Alt+... will remove focus from the form and put it on the menu instead so your code will never work. You may have to add a property to the form to hold a pointer to the current object and update it with the gotfocus of each control you expect to be in.
>>
>>John.
>>
>>
>>>I have fixed this problem, but I want to know why it happens.
>>>
>>>Define myChkBox as ChkBox
>>>  Caption = 'Re\<fused'      && User can press {alt+f} to toggle value
>>>  Procedure When()
>>>    local lo
>>>    lo = Thisform.ActiveControl
>>>    This.Value = !This.Value
>>>    lo.SetFocus()
>>>    Return .F.
>>>  EndProd
>>>EndDefine
>>>
>>>This works just fine when the user clicks on the chkBox with the mouse, but if the user uses {alt+f} to do it, error "ACTIVECONTROL IS NOT AN OBJECT" and debugger shows "" for ActiveControl.
>>>
>>>Why does the keyboard shortcut throw away the ActiveControl?
Beer is proof that God loves man, and wants him to be happy. - Benjamin Franklin
John J. Henn
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform