------------------------------------------------------------
[BUG/PRB.] VFP 9.0 FIX - PAGE.ENABLED PROPERTY
January 2026
------------------------------------------------------------
CCB
1. BUG:
In vfp9 (and vfp6, vfp7, vfp8), we can set the Page.Enabled property to false (.F.) in the class library,
but sometimes the Page.Enabled property has not been refreshed.
2. CAUSE:
There are some BUGs in the following code.
3. RESOLUTION:
We can write some code to fix the BUG.
Fun4cc1ca :: ; proc near
push ebp ;0x004cc1ca : 55
lea ebp , dword ptr [ esp + 0FFFFFDCCh ] ;0x004cc1cb : 8dac24ccfdffff
sub esp , 02C8h ;0x004cc1d2 : 81ecc8020000
mov eax , dword ptr [ Data937090 ] ;0x004cc1d8 : a190709300
push ebx ;0x004cc1dd : 53
mov ebx , dword ptr [ Data93888c ] ;0x004cc1de : 8b1d8c889300
push esi ;0x004cc1e4 : 56
mov esi , dword ptr [ ebp + 0244h ] ;0x004cc1e5 : 8bb544020000
mov dword ptr [ ebp + 0230h ] , eax ;0x004cc1eb : 898530020000
xor eax , eax ;0x004cc1f1 : 33c0
push edi ;0x004cc1f3 : 57
mov dword ptr [ ebp - 48 ] , eax ;0x004cc1f4 : 8945d0
mov dword ptr [ ebp - 52 ] , eax ;0x004cc1f7 : 8945cc
mov edi , ebx ;0x004cc1fa : 8bfb
call Fun41de4e ;0x004cc1fc : e84d1cf5ff
push edi ;0x004cc201 : 57
mov ebx , eax ;0x004cc202 : 8bd8
call Fun41e378 ;0x004cc204 : e86f21f5ff
mov dword ptr [ ebx + 68 ] , eax ;0x004cc209 : 894344
mov eax , dword ptr [ ebp + 0248h ] ;0x004cc20c : 8b8548020000
test eax , eax ;0x004cc212 : 85c0
mov dword ptr [ ebp - 44 ] , ebx ;0x004cc214 : 895dd4
mov ecx , 049h ;0x004cc217 : b949000000
je Label5df016 ;0x004cc21c : 0f84f42d1100
xor eax , eax ;0x004cc222 : 33c0
lea edi , dword ptr [ ebp - 40 ] ;0x004cc224 : 8d7dd8
rep stosd ;0x004cc227 : f3ab
lea edi , dword ptr [ ebp - 40 ] ;0x004cc229 : 8d7dd8
pushd 01241h ;0x004cc22c : 6841120000
lea edx , dword ptr [ ebp - 40 ] ;0x004cc231 : 8d55d8
Label4cc234 ::
mov ecx , 041h ;0x004cc234 : b941000000
rep movsd ;0x004cc239 : f3a5
mov ecx , ebx ;0x004cc23b : 8bcb
pushd 0FFFFFFFFh ;0x004cc23d : 6aff
movsb ;0x004cc23f : a4
call Fun41e4ef ;0x004cc240 : e8aa22f5ff
test eax , eax ;0x004cc245 : 85c0
jne Label5df036 ;0x004cc247 : 0f85e92d1100
mov eax , dword ptr [ebx] ;0x004cc24d : 8b03
mov eax , dword ptr [eax] ;0x004cc24f : 8b00
pushd 01h ;0x004cc251 : 6a01
call Fun43d469 ;0x004cc253 : e81112f7ff
mov ebx , dword ptr [ebx] ;0x004cc258 : 8b1b
mov eax , dword ptr [ ebx + 4 ] ;0x004cc25a : 8b4304
pushd 01h ;0x004cc25d : 6a01
call Fun43d469 ;0x004cc25f : e80512f7ff
lea edx , dword ptr [ ebp - 64 ] ;0x004cc264 : 8d55c0
lea eax , dword ptr [ ebp + 0FFFFFF70h ] ;0x004cc267 : 8d8570ffffff
call Fun42c27f ;0x004cc26d : e80d00f6ff
pushd 00h ;0x004cc272 : 6a00
push eax ;0x004cc274 : 50
call Fun42c2be ;0x004cc275 : e84400f6ff
mov esi , eax ;0x004cc27a : 8bf0
add esp , 08h ;0x004cc27c : 83c408
test esi , esi ;0x004cc27f : 85f6
mov dword ptr [ ebp - 56 ] , esi ;0x004cc281 : 8975c8
jne Label4cc38c ;0x004cc284 : 0f8502010000
pushd 01846h ;0x004cc28a : 6846180000
mov eax , 011Ch ;0x004cc28f : b81c010000
call Fun42bf2a ;0x004cc294 : e891fcf5ff
mov ecx , dword ptr [ ebp + 0250h ] ;0x004cc299 : 8b8d50020000
mov edx , dword ptr [ ebp + 0248h ] ;0x004cc29f : 8b9548020000
;
; -------------------------------------------------
; VFP 9.0 FIX - PAGE.ENABLED PROPERTY
; September 2018
; -------------------------------------------------
; CCB
;
; In vfp9, sometimes the Page.Enabled property has not been refreshed.
;
; 2018/9/8, by ccb
;
mov dword ptr vfpa_pageenabled_isdoform,edx
mov ebx , eax ;0x004cc2a5 : 8bd8
mov eax , dword ptr [ ebp + 0254h ] ;0x004cc2a7 : 8b8554020000
push eax ;0x004cc2ad : 50
mov eax , dword ptr [ ebp + 0240h ] ;0x004cc2ae : 8b8540020000
push ecx ;0x004cc2b4 : 51
mov ecx , dword ptr [ ebp + 023Ch ] ;0x004cc2b5 : 8b8d3c020000
push edx ;0x004cc2bb : 52
mov edx , dword ptr [ ebp - 44 ] ;0x004cc2bc : 8b55d4
push eax ;0x004cc2bf : 50
push ecx ;0x004cc2c0 : 51
push edx ;0x004cc2c1 : 52
mov dword ptr [ ebp - 52 ] , ebx ;0x004cc2c2 : 895dcc
call Fun4cbfe0 ;0x004cc2c5 : e816fdffff
;
; -------------------------------------------------
; VFP 9.0 FIX - PAGE.ENABLED PROPERTY
; September 2018
; -------------------------------------------------
; CCB
;
; In vfp9, sometimes the Page.Enabled property has not been refreshed.
;
; 2018/9/8, by ccb
;
mov dword ptr vfpa_pageenabled_isdoform,00h
test eax , eax ;0x004cc2ca : 85c0
mov dword ptr [ ebp - 48 ] , eax ;0x004cc2cc : 8945d0
je Label4cc32e ;0x004cc2cf : 745d
mov edi , dword ptr [ebx] ;0x004cc2d1 : 8b3b
mov esi , dword ptr [ ebp + 0244h ] ;0x004cc2d3 : 8bb544020000
mov ecx , 041h ;0x004cc2d9 : b941000000
rep movsd ;0x004cc2de : f3a5
movsb ;0x004cc2e0 : a4
mov esi , dword ptr [ ebp - 44 ] ;0x004cc2e1 : 8b75d4
mov eax , dword ptr [esi] ;0x004cc2e4 : 8b06
mov edx , dword ptr [eax] ;0x004cc2e6 : 8b10
mov ecx , dword ptr [ebx] ;0x004cc2e8 : 8b0b
mov dword ptr [ ecx + 0108h ] , edx ;0x004cc2ea : 899108010000
mov eax , dword ptr [esi] ;0x004cc2f0 : 8b06
mov edx , dword ptr [ eax + 4 ] ;0x004cc2f2 : 8b5004
mov ecx , dword ptr [ebx] ;0x004cc2f5 : 8b0b
mov dword ptr [ ecx + 010Ch ] , edx ;0x004cc2f7 : 89910c010000
mov eax , dword ptr [esi] ;0x004cc2fd : 8b06
mov edx , dword ptr [ eax + 112 ] ;0x004cc2ff : 8b5070
mov ecx , dword ptr [ebx] ;0x004cc302 : 8b0b
mov dword ptr [ ecx + 0110h ] , edx ;0x004cc304 : 899110010000
mov eax , dword ptr [ebx] ;0x004cc30a : 8b03
mov edi , dword ptr [ eax + 0108h ] ;0x004cc30c : 8bb808010000
mov dword ptr [ ebp - 60 ] , eax ;0x004cc312 : 8945c4
call Fun433ef7 ;0x004cc315 : e8dd7bf6ff
mov ecx , dword ptr [ ebp - 60 ] ;0x004cc31a : 8b4dc4
mov dword ptr [ ecx + 0114h ] , eax ;0x004cc31d : 898114010000
mov edx , dword ptr [ebx] ;0x004cc323 : 8b13
mov dword ptr [ edx + 0118h ] , esi ;0x004cc325 : 89b218010000
mov esi , dword ptr [ ebp - 56 ] ;0x004cc32b : 8b75c8
Label4cc32e ::
mov ecx , dword ptr [ Data937220 ] ;0x004cc32e : 8b0d20729300
lea eax , dword ptr [ ebp + 0FFFFFF70h ] ;0x004cc334 : 8d8570ffffff
cmp eax , ecx ;0x004cc33a : 3bc1
jne Label5df03d ;0x004cc33c : 0f85fb2c1100
mov ecx , dword ptr [ Data937220 ] ;0x004cc342 : 8b0d20729300
mov eax , dword ptr [ ecx + 76 ] ;0x004cc348 : 8b414c
cmp dword ptr [ ebp - 64 ] , eax ;0x004cc34b : 3945c0
mov dword ptr [ Data937220 ] , eax ;0x004cc34e : a320729300
jne Label5df047 ;0x004cc353 : 0f85ee2c1100
mov eax , dword ptr [ ebp + 024Ch ] ;0x004cc359 : 8b854c020000
test eax , eax ;0x004cc35f : 85c0
je Label4cc368 ;0x004cc361 : 7405
mov edx , dword ptr [ ebp - 48 ] ;0x004cc363 : 8b55d0
mov dword ptr [eax] , edx ;0x004cc366 : 8910
Label4cc368 ::
test esi , esi ;0x004cc368 : 85f6
jne Label5df051 ;0x004cc36a : 0f85e12c1100
mov ecx , dword ptr [ ebp + 0230h ] ;0x004cc370 : 8b8d30020000
mov eax , ebx ;0x004cc376 : 8bc3
call Fun42bf1d ;0x004cc378 : e8a0fbf5ff
pop edi ;0x004cc37d : 5f
pop esi ;0x004cc37e : 5e
pop ebx ;0x004cc37f : 5b
add ebp , 0234h ;0x004cc380 : 81c534020000
mov esp , ebp ;0x004cc386 : 8be5
pop ebp ;0x004cc388 : 5d
ret 01Ch ;0x004cc389 : c21c00
4. APPLIES TO:
VFP 6.0.8167.0
VFP 6.0.8961.0 (SP5)
VFP 7.0.0.9262
VFP 7.0.0.9465 (SP1)
VFP 8.0.0.2521
VFP 8.0.0.3117 (SP1)
VFP 9.0.0.2412
VFP 9.0.0.3504 (SP1)
VFP 9.0.0.4611 (SP2)
VFP 9.0.0.5015 (SP2)
VFP 9.0.0.5411 (SP2)
VFP 9.0.0.5721 (SP2)
VFP 9.0.0.5815 (SP2)
VFP 9.0.0.6303 (SP2)
VFP 9.0.0.6602 (SP2)
VFP 9.0.0.7423 (SP2)
The bug has been fixed in VFP Advanced.
5. REFERENCE WEBSITES:
1, baiyujia.com:
http://www.baiyujia.com
http://www.baiyujia.com/vfpdocuments/f_vfp9fix232.asp
2, foxite.com:
https://www.foxite.com/archives/found-bugissue-0000059237.htm
6. OTHER:
For reference only, there is no guarantees.
Any questions or suggestions, please send me an email at ccb2000@163.com.
|