---------------------------------------------------------------------------------
[BUG/PRB.] VFP 9.0 FIX - INITIALIZE THE RETURN VALUE OF THE VALID EVENT
January 2026
---------------------------------------------------------------------------------
CCB
1. BUG:
If we enable initializing the return value of the Valid event in Visual FoxPro Advanced,
VFP will initialize the return value of the Valid event to true (.T.) and 0 (Zero).
It is the startup default for Visual FoxPro Advanced.
If we disable initializing the return value of the Valid event in Visual FoxPro Advanced,
sometimes the Valid event returns a BIG random number, VFP will enter an infinite loop.
It is the same as Visual FoxPro 9.0 and earlier versions.
The bug occurs for the ComboBox control, it does not occur for other controls.
The bug occurs in the Valid event, the Click event and the KeyPress event.
2. CAUSE:
There are some BUGs in the following code.
3. RESOLUTION:
We can write some code to fix the BUG.
Label5ef55d ::
;
; ----------------------------------------------------------------------
; VFP 9.0 FIX - INITIALIZE THE RETURN VALUE OF THE VALID EVENT
; December 2024
; ----------------------------------------------------------------------
; CCB
;
; In vfp9, sometimes the Valid event returns a BIG random number, VFP will enter an infinite loop.
; In VFP Advanced, VFP will initialize the return value of the Valid event to true (.T.) and 0 (Zero) to fix the BUG.
;
; 2024/12/16, by ccb
;
cmp dword ptr vfpa_sys9178_data,00h
je Label5ef55e
mov ecx , dword ptr [ Data9370f0 ]
mov byte ptr [ ecx + 44 ] , 04Ch
mov dword ptr [ ecx + 52 ] , 01h
mov dword ptr [ ecx + 56 ] , 00h
Label5ef55e ::
pushd 00h ;0x005ef55d : 6a00
pushd 018Dh ;0x005ef55f : 688d010000
push ebx ;0x005ef564 : 53
call Fun450463 ;0x005ef565 : e8f90ee6ff
mov esi , dword ptr [ Data9370f0 ] ;0x005ef56a : 8b35f0709300
mov ebp , eax ;0x005ef570 : 8be8
add esi , 02Ch ;0x005ef572 : 83c62c
cmp ebp , 01h ;0x005ef575 : 83fd01
mov ecx , 0Bh ;0x005ef578 : b90b000000
lea edi , dword ptr [ esp + 40 ] ;0x005ef57d : 8d7c2428
mov dword ptr [ esp + 96 ] , ebp ;0x005ef581 : 896c2460
rep movsd ;0x005ef585 : f3a5
jne Label5ef596 ;0x005ef587 : 750d
mov edi , ebx ;0x005ef589 : 8bfb
call Fun485794 ;0x005ef58b : e80462e9ff
mov ebp , eax ;0x005ef590 : 8be8
mov dword ptr [ esp + 96 ] , ebp ;0x005ef592 : 896c2460
Label5ef596 ::
cmp ebp , 02h ;0x005ef596 : 83fd02
je Label4edce3 ;0x005ef599 : 0f8444e7efff
push ebx ;0x005ef59f : 53
lea edi , dword ptr [ esp + 44 ] ;0x005ef5a0 : 8d7c242c
call Fun8c8208 ;0x005ef5a4 : e85f8c2d00
test eax , eax ;0x005ef5a9 : 85c0
jne Label4edce3 ;0x005ef5ab : 0f8532e7efff
cmp ebp , 08h ;0x005ef5b1 : 83fd08
je Label4edce3 ;0x005ef5b4 : 0f8429e7efff
push eax ;0x005ef5ba : 50
pushd 0195h ;0x005ef5bb : 6895010000
push ebx ;0x005ef5c0 : 53
call Fun450463 ;0x005ef5c1 : e89d0ee6ff
mov dword ptr [ esp + 96 ] , eax ;0x005ef5c6 : 89442460
mov eax , ebx ;0x005ef5ca : 8bc3
call Fun485ccc ;0x005ef5cc : e8fb66e9ff
mov eax , dword ptr [ esp + 96 ] ;0x005ef5d1 : 8b442460
pop edi ;0x005ef5d5 : 5f
pop esi ;0x005ef5d6 : 5e
pop ebp ;0x005ef5d7 : 5d
pop ebx ;0x005ef5d8 : 5b
add esp , 044h ;0x005ef5d9 : 83c444
ret 010h ;0x005ef5dc : c21000
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_vfp9fix367.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix16.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix365.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix366.asp
6. OTHER:
For reference only, there is no guarantees.
Any questions or suggestions, please send me an email at ccb2000@163.com.
|