Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Old Bug ... fixed ?
Message
From
08/10/2002 08:39:03
 
 
To
08/10/2002 08:16:38
Emanuele Bonin
EB Soluzioni Informatiche
Tezze S/B, Italy
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
00708692
Message ID:
00708700
Views:
10
Hi Emanuele,

I just tried the example and it seems to work just fine. Class 1 showed up when your prompt said that it should have said class 2.

Looks like they fixed it.

Bye for now

>The following code demostrate a bug that i discover sometime ago in VFp7 & 6 ...
>
>The bug involve two classes that have the same name but are in two different class-container, when this classes are used for subclassing in the same work-session without issuing a CLEAR ALL between the operation, VFP act a "classMerging".
>
>I supposed that VFP in his cache, when try to reuse the cached classes, performs erroneous searches.
>
>Can, Anyone that have VFP8.0 Beta, try this code for me, and say me if the problem persist ?
>
>Thanx in Advance
>
>** Cut Here
>IF !FILE('sub\b2.vcx')
> cProg = SYS(16)
> DO makeclasses IN &cProg
>ENDIF
>cProg = SYS(16)
>DO checkclasses IN &cProg
>RETURN
>
>PROCEDURE makeclasses
> MESSAGEBOX("To the class which appears, add a label with caption 'class 1', fontsize 24 and AutoSize = .T. then save the class", 0, "Class Problem")
> CREATE CLASS baseform OF classes AS FORM
> CLEAR ALL
> MESSAGEBOX("Save the following class as is", 0, "Class Problem")
> CREATE CLASS BASE OF base1 AS baseform FROM classes
> CLEAR ALL
> MESSAGEBOX("Change the caption of the next classes label to 'class 2'", 0, "Class Problem")
> CREATE CLASS BASE OF base2 AS baseform FROM classes
> CLEAR ALL
> MESSAGEBOX("Save the following class as is", 0, "Class Problem")
> CREATE CLASS SubBASE1 OF b1 AS BASE FROM base1
> CLEAR ALL
> MESSAGEBOX("Save the following class as is", 0, "Class Problem")
> CREATE CLASS SubBASE2 OF b2 AS BASE FROM base2
> CLEAR ALL
>ENDPROC
>
>PROCEDURE checkclasses
> MODIFY CLASS SubBASE1 OF b1 NOWAIT
> MESSAGEBOX("sub class b1: you should see 'class 1'", 0, "Class Problem")
> CLOSE ALL
> MODIFY CLASS SubBASE2 OF b2 NOWAIT
> MESSAGEBOX("sub class b2: you should see 'class 2'", 0, "Class Problem")
> CLOSE ALL
> MODIFY CLASS SubBASE1 OF b1 NOWAIT
> MESSAGEBOX("back to sub class b1: you should see 'class 1' but you see 'class 2'", 0, "Class Problem")
> CLOSE ALL
> CLEAR ALL
> MODIFY CLASS SubBASE1 OF b1 NOWAIT
> MESSAGEBOX("back to sub class b1: you should see 'class 1' and you see 'class 1' because CLEAR ALL was issued", 0, "Class Problem")
> CLOSE ALL
>ENDPROC
>
>** Cut Here
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform