DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 169111 - Dernière mise à jour: samedi 11 décembre 1999 - Version: 1.1

 

Sommaire

Symptômes

Une erreur se produit lors de l'exécution d'une fonction DODEFAULT sur une classe de base Visual FoxPro méthode KeyPress.

Statut

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés au début de cet article.

Plus d'informations

Une erreur se produit lors de l'exécution d'une fonction DODEFAULT à une méthode de classe de base Visual FoxPro. La fonction DODEFAULT apparaît pour faire référence à un objet autre que celui dans lequel il s'exécute.

Dans le code ci-dessous, le code DODEFAULT se trouve dans la méthode KEYPRESS d'un formulaire. Si vous appuyez sur la touche TAB lorsque le curseur se trouve dans le premier contrôle TextBox de l'exemple ci-dessous entraîne la méthode valable de la zone de texte à exécuter mais la méthode valide du formulaire semble être en cours d'exécution de plus pour le TextBox valide et une erreur «Propriété VALUE est introuvable» se produit. L'objet de formulaire ne possède pas de propriété VALUE. Interruption du programme après que l'erreur s'est produite et vérifiant la valeur de "CE" vérifie que la référence d'objet est le formulaire plutôt que la zone de texte.

Procédure pour reproduire le problème

  1. Exécutez l'exemple de code ci-dessous et appuyez sur la touche TAB pour passer à l'objet suivant.
          ****Start of Code
    
          frmTestForm = CREATEOBJECT("MyForm")
          frmTestForm.SHOW
          READ EVENTS
    
          **************************************************
          *-- ParentClass:  basform
          *-- BaseClass:    form
          DEFINE CLASS MyForm AS BASFORM
            PROCEDURE KEYPRESS
            LPARAMETERS NKEYCODE, NSHIFTALTCTRL
    
            && Do not comment the PROCEDURE, ENDPROC or LPARAMETERS lines
            && Comment the following two lines only
    
            WAIT WINDOW "Form Key Press - Child Class"
            DODEFAULT(NKEYCODE, NSHIFTALTCTRL)
    
            ENDPROC
          ENDDEFINE
          *
          *-- EndDefine: MyForm
          **************************************************
          *-- ParentClass:  form
          *-- BaseClass:    form
          DEFINE CLASS BasForm AS FORM
            TOP = 10
            LEFT = 23
            DOCREATE = .T.
            CAPTION = "Test Form"
            KEYPREVIEW = .T.
            NAME = "frmForm1"
    
            ADD OBJECT txtTEXT1 AS TEXTBOX WITH ;
              HEIGHT = 23, ;
              LEFT = 84, ;
              TOP = 24, ;
              WIDTH = 100, ;
              NAME = "txtText1"
    
            ADD OBJECT txtTEXT2 AS TEXTBOX WITH ;
              HEIGHT = 23, ;
              LEFT = 84, ;
              TOP = 84, ;
              WIDTH = 100, ;
              NAME = "txtText2"
    
            ADD OBJECT cmdCOMMAND1 AS COMMANDBUTTON WITH ;
              TOP = 216, ;
              LEFT = 276, ;
              HEIGHT = 27, ;
              WIDTH = 84, ;
              CAPTION = "Close", ;
              NAME = "cmdCommand1"
    
            ADD OBJECT lblLabel1 as LABEL with;
               TOP = 20, ;
            LEFT = 200,;
               CAPTION = "Press the TAB key"
    
              *!* PROCEDURE KEYPRESS
              *!* LPARAMETERS NKEYCODE, NSHIFTALTCTRL
    
              *!* WAIT WINDOW "Form Key Press - Parent Class"
              *!* DODEFAULT(nkeycode, nshiftaltctrl)
              *!* ENDPROC
    
              * Uncomment the above code and comment the contents of
              * the Keypress procedure (Comment the 2 lines of code that
              * are identified to be commented out within the Keypress
              * procedure, which are the lines that start with "WAIT WINDOW"
              * and "DODEFAULT". Do not comment out the PROCEDURE line nor the
              * LPARAMETERS line nor the ENDPROC line) in the BasForm
              * Class definition and the error will not occur.
    
              PROCEDURE txtTEXT1.VALID
                IF EMPTY(THIS.VALUE)
                  WAIT WINDOW "Text1 Valid"
                ENDIF
              ENDPROC
    
              PROCEDURE cmdCOMMAND1.CLICK
                THISFORM.RELEASE()
                CLEAR EVENTS
              ENDPROC
    
          ENDDEFINE
          *
          *-- EndDefine: basform
          **************************************************
    						

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual FoxPro 5.0 Édition standard
  • Microsoft Visual FoxPro 5.0a
Mots-clés : 
kbmt kbcode kbprb KB169111 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 169111  (http://support.microsoft.com/kb/169111/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store