Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Menu Shortcuts
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Classes - VCX
Titre:
Divers
Thread ID:
00454279
Message ID:
00454294
Vues:
38
How about calling the Valid method (if there is one) of the current control specifically from the menu option? You can check what's returned, and continue if you get back something other than .F. or 0.


>In our "data entry" form class, we made the following design choices:
>-Buttons’ captions are pictures.
>-The user must press Add/Edit to add a new record or edit the current record.
>-While adding / editing all actions are disabled except Save and Cancel.
>-We wanted to be able to do data validation at the field / control level.
>
>To provide keyboard and menu access to all buttons’ functions, we added a Record menu pad to our standard application menu, and used the “skip for” clause sync the menu with the buttons’ enabled/disabled status. Each bar has a procedure that attempt to set the focus on the right button and run its click() code.All seem to be OK, except for one thing: I'm not very happy with our sollution to prevent the save via menu shortcut, when the valid method of the control that has the focus returns .F..
>
>My current solution is:
>-Added SaveDenied property to the form class.
>-The Valid method of the controls:
>
if lastkey()=17	&& don't validate on cancel action (17 = ctrl+q)
>  return .t.
>endif
>if <<Value is Invalid>>
>  thisform.SaveDenied = . T.	&& prevent save
>  return .f.
>else
>  thisform.SaveDenied = . F.	&& allow save
>endif
>-Menu bar procedure for Save:
>
_screen.activeform.CmdSave1.setfocus()
>if _screen.activeform.SaveDenied
>  <<Display Some Message>>
>else
>  _screen.activeform.CmdSave1.click()
>endif
>What I don't like is the extra code in the Valid that must be added to each an every control that may return .F..
>Is there a better way?
>
>TIA
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform