Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Class Definition is not found
Message
De
07/01/2012 14:11:10
 
 
À
07/01/2012 13:50:47
Information générale
Forum:
Visual FoxPro
Catégorie:
Classes - VCX
Versions des environnements
Visual FoxPro:
VFP 8 SP1
Divers
Thread ID:
01532347
Message ID:
01532392
Vues:
42
>>>I have a Class Library common_libs.vcx
>>>
>>>Looking at it in the Class Browser there is a class cntPartno
>>>
>>>within cntPartno are several subclasses (cntAvl, cntExcess, cntMRB, etc.)
>>>
>>>I want to create a new subclass cntDMR which will be a duplicate of cntMRB.
>>>
>>>I Created a new ClassLib (clsTemp.vcx)
>>>
>>>I opened two instances of the class browser. In the first one I opened common_libs. In the second I opened clsTemp.
>>>
>>>In the first class browser I clicked on cntMRB. I then CTRL-Clicked on the icon just to the left of the drop-down at the top of the screen and dragged it into the second class browser. I now have cntMRB showing in both class browsers.
>>>
>>>I renamed the class in the second browser and CTRL-Click dragged it back to the first. The renamed class shows up in the first browser where I expect (underneath cntPartno)
>>>
>>>I then modified cntMRB by putting a MESSAGEBOX statement so that I could tell I was working with the correct library.
>>>
>>>Everything works fine in my test environment within VFP.
>>>
>>>However, when I compile the APP file and install it into my production environment I get a "Class Definition cntDMR is not found" message. Invoking cntMRB shows the new MESSAGEBOX.
>>>
>>>Have I done anything wrong in the way I created this new class?
>>
>>
>>I would do this as follows:
>>Click on File ->New (in the VFP menu)
>>Select the option Class en click on button New file
>>You will be selected with a window “New Class”
>>In first textbox you give cntDMR for Class Name
>>Your click on the … button in the “Based on” line.
>>This will open a getfile() prompt which will be restricted to Class Library.
>>Now find and locate your class library common_libs.vcx when you have selected that, there will be listed, in the right panel. a list of all the classes in this selected library. Select in this case the class cntMRB
>>Click on open button in the getfile prompt and you will be returned to the window “New Class”
>>Now you can either store your cntDMR class in the common_libs.vcx or select an other or new class by clicking on the … button in the Store in line.
>>When done you can start making additional modifications to your just newly created cmdDMR class. Open the library etc . etc.
>>
>>Regards,
>>Koen
>>>
>
>
>Thanks for the response.
>
>1. Does this make it a copy or a sub-class of cntMRB? If a sub-class I will try this using cntPartno for the "Based On."
>
>2. I think I tried an equivalent of this from the command window
>CREATE CLASS cntDMR OF common_libs AS cntPartno FROM common_libs
>and wound up with the same error.
>
>Thanks again. I'll post the results on Monday
>
>......Rich
>
Hi,
Yes your newly created class cntDMR is an exact copy of the class which it is based on. Even if you make afterwards any changes to your based on class, cntDMR will inherit them.
Your line
CREATE CLASS cntDMR OF common_libs AS cntPartno FROM common_libs
will error in case common_libs.vcx is not in your path

Question: Why do you start 'the hard way' by creating in code? Use Visual FoxPro

Regards,
Koen


>
>>>Any suggestions on how to fix this will be greatly appreciated.
>>>
>>>Thanks to all.........Rich
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform