---------------------------------------------------------------------------------------------------
[ENHANCED] VFP 9.0 FIX - THE MAXIMUM NUMBER OF WINDOW ITEMS TO DISPLAY IN THE WINDOW MENU
January 2026
---------------------------------------------------------------------------------------------------
CCB
1. BUG:
In vfp9 (and vfp6, vfp7, vfp8), the maximum number of window items to display in the Window menu is 9, now it can be set between 1 and 255.
2. CAUSE:
There are some BUGs in the following code.
3. RESOLUTION:
We can write some code to fix the BUG.
Fun8a74ee :: ; proc near
push ecx ;0x008a74ee : 51
push ebx ;0x008a74ef : 53
push ebp ;0x008a74f0 : 55
push esi ;0x008a74f1 : 56
mov esi , 0FFFFA007h ;0x008a74f2 : be07a0ffff
push edi ;0x008a74f7 : 57
xor edx , edx ;0x008a74f8 : 33d2
mov ecx , esi ;0x008a74fa : 8bce
call Fun42f404 ;0x008a74fc : e8037fb8ff
test eax , eax ;0x008a7501 : 85c0
je Label8a75b0 ;0x008a7503 : 0f84a7000000
mov ecx , esi ;0x008a7509 : 8bce
call Fun4173cd ;0x008a750b : e8bdfeb6ff
mov ebx , eax ;0x008a7510 : 8bd8
mov edi , 0FFFFA814h ;0x008a7512 : bf14a8ffff
jmp Label8a752f ;0x008a7517 : eb16
Label8a7519 ::
push ebx ;0x008a7519 : 53
call Fun4173b3 ;0x008a751a : e894feb6ff
test eax , eax ;0x008a751f : 85c0
jnl Label8a752f ;0x008a7521 : 7d0c
cmp eax , edi ;0x008a7523 : 3bc7
jl Label8a752f ;0x008a7525 : 7c08
push eax ;0x008a7527 : 50
mov ecx , esi ;0x008a7528 : 8bce
call Fun417e11 ;0x008a752a : e8e208b7ff
Label8a752f ::
dec ebx ;0x008a752f : 4b
mov ecx , esi ;0x008a7530 : 8bce
jns Label8a7519 ;0x008a7532 : 79e5
pushd offset Data92a90c ;0x008a7534 : 680ca99200
pushd 0FFFFFFFEh ;0x008a7539 : 6afe
push edi ;0x008a753b : 57
call Fun78d571 ;0x008a753c : e83060eeff
push dword ptr [ Data937fb0 ] ;0x008a7541 : ff35b07f9300
mov ecx , edi ;0x008a7547 : 8bcf
pushd 00h ;0x008a7549 : 6a00
pushd 01h ;0x008a754b : 6a01
;
; ----------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE MAXIMUM NUMBER OF WINDOW ITEMS TO DISPLAY IN THE WINDOW MENU
; February 2019
; ----------------------------------------------------------------------------------------
; CCB
;
; The maximum number of window items to display in the Window menu.
;
; 2019/2/5, by ccb
;
; pushd 09h ;0x008a754d : 6a09
push dword ptr vfpa_sys9011_data
push esi ;0x008a754f : 56
call Fun8a724e ;0x008a7550 : e8f9fcffff
mov ebp , eax ;0x008a7555 : 8be8
;
; ----------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE MAXIMUM NUMBER OF WINDOW ITEMS TO DISPLAY IN THE WINDOW MENU
; February 2019
; ----------------------------------------------------------------------------------------
; CCB
;
; The maximum number of window items to display in the Window menu.
;
; 2019/2/5, by ccb
;
; cmp ebp , 09h ;0x008a7557 : 83fd09
; jne Label8a7599 ;0x008a755a : 753d
; pushd 0Ah ;0x008a755c : 6a0a
; pop ebp ;0x008a755e : 5d
cmp ebp , dword ptr vfpa_sys9011_data
jne Label8a7599
mov ebp , dword ptr vfpa_sys9011_data
inc ebp
mov ecx , 031Fh ;0x008a755f : b91f030000
call Fun42c583 ;0x008a7564 : e81a50b8ff
push eax ;0x008a7569 : 50
pushd 0FFFFFFFEh ;0x008a756a : 6afe
mov ebx , 0FFFFA81Eh ;0x008a756c : bb1ea8ffff
push ebx ;0x008a7571 : 53
mov ecx , esi ;0x008a7572 : 8bce
call Fun78d571 ;0x008a7574 : e8f85feeff
mov ecx , 040Bh ;0x008a7579 : b90b040000
call Fun42c583 ;0x008a757e : e80050b8ff
push eax ;0x008a7583 : 50
push ebx ;0x008a7584 : 53
mov ecx , esi ;0x008a7585 : 8bce
call Fun51e4e9 ;0x008a7587 : e85d6fc7ff
pushd 01312D91h ;0x008a758c : 68912d3101
push ebx ;0x008a7591 : 53
mov ecx , esi ;0x008a7592 : 8bce
call Fun51e472 ;0x008a7594 : e8d96ec7ff
Label8a7599 ::
test ebp , ebp ;0x008a7599 : 85ed
jle Label8a75a8 ;0x008a759b : 7e0b
mov ecx , esi ;0x008a759d : 8bce
call Fun41c46d ;0x008a759f : e8c94eb7ff
test eax , eax ;0x008a75a4 : 85c0
jne Label8a75b0 ;0x008a75a6 : 7508
Label8a75a8 ::
push edi ;0x008a75a8 : 57
mov ecx , esi ;0x008a75a9 : 8bce
call Fun417e11 ;0x008a75ab : e86108b7ff
Label8a75b0 ::
pop edi ;0x008a75b0 : 5f
pop esi ;0x008a75b1 : 5e
pop ebp ;0x008a75b2 : 5d
pop ebx ;0x008a75b3 : 5b
pop ecx ;0x008a75b4 : 59
ret ;0x008a75b5 : c3
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_vfp9fix61.asp
6. OTHER:
For reference only, there is no guarantees.
Any questions or suggestions, please send me an email at ccb2000@163.com.
|