--------------------------------------------------------------------------------------------
                      [BUG/PRB.] VFP 9.0 FIX - THE DEFAULT SETTING OF THE PAGEFRAME.RIGHTTOLEFT PROPERTY
                                 January 2024
                 --------------------------------------------------------------------------------------------
                                    CCB



1. BUG:

     In vfp9 (and vfp6, vfp7, vfp8), usually the default setting of the RightToLeft property is false (.F.),
     but for the PageFrame object, the default setting of the RightToLeft property is true (.T.).

     If the setting of the PageFrame.RightToLeft property is true (.T.), there are some problems for the Page.Caption property.
     For example, if we set Page.Caption = "Page(1)", it will display "(Page(1".
     Please refer to the picture testpagecaption-vfp9.jpg:


2. CAUSE:

     There are some BUGs in the following code.


3. RESOLUTION:

     We can write some code to fix the BUG.

     Label44ac1d ::
             mov  eax , dword ptr [ ebp + 0 ]                                ;0x0044ac1d :        8b4500
             mov  ecx , dword ptr [ esp + 0170h ]                            ;0x0044ac20 :        8b8c2470010000
             xor edx , edx                                                   ;0x0044ac27 :        33d2
             mov  dx , word ptr [ eax + 96 ]                                 ;0x0044ac29 :        668b5060
             and edx , 0800h                                                 ;0x0044ac2d :        81e200080000
             sub edx , 0800h                                                 ;0x0044ac33 :        81ea00080000
             neg edx                                                         ;0x0044ac39 :        f7da
             sbb edx , edx                                                   ;0x0044ac3b :        1bd2
             xor ebx , ebx                                                   ;0x0044ac3d :        33db
             inc edx                                                         ;0x0044ac3f :        42
             test ecx , ecx                                                  ;0x0044ac40 :        85c9
             setne bl                                                        ;0x0044ac42 :        0f95c3
             cmp edx , ebx                                                   ;0x0044ac45 :        3bd3
             je Label48186f                                                  ;0x0044ac47 :        0f84226c0300
             test ecx , ecx                                                  ;0x0044ac4d :        85c9
             je Label61213b                                                  ;0x0044ac4f :        0f84e6741c00


     ;
     ;                 ---------------------------------------------------------------------------------
     ;                      VFP 9.0 FIX - THE DEFAULT SETTING OF THE PAGEFRAME.RIGHTTOLEFT PROPERTY
     ;                                December 2017
     ;                 ---------------------------------------------------------------------------------
     ;                                     CCB
     ;
     ; don't set the default setting of the PageFrame.RightToLeft property to true (.T.),
     ; now the default setting of the PageFrame.RightToLeft property is false (.F.).
     ;
     ; 2017/12/29, by ccb
     ;

     ;         or  byte ptr [ eax + 97 ] , 08h                                 ;0x0044ac55 :        80486108


     Label44ac59 ::
             cmp  word ptr [ Data939364 ] , 00h                              ;0x0044ac59 :        66833d6493930000
             jne Label612144                                                 ;0x0044ac61 :        0f85dd741c00
             jmp Label48186f                                                 ;0x0044ac67 :        e9036c0300

     Now in VFP Advanced, the default setting of the PageFrame.RightToLeft property is false (.F.).
     For example, if we set Page.Caption = "Page(1)", it will display "Page(1)".
     Please refer to the picture testpagecaption-vfpa.jpg:


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

     2, foxite.com:
     https://www.foxite.com/archives/bug-in-page-caption-of-pageframe-0000411291.htm
     https://www.foxite.com/archives/pageframe-captions-0000393709.htm
     https://www.foxite.com/archives/pageframe-page-caption-bug-0000241406.htm
     https://www.foxite.com/archives/page-caption-0000090695.htm

     3, microsoft.com:
     https://www.microsoft.com/middleeast/msdn/VisualFoxPro.aspx
     https://social.msdn.microsoft.com/Forums/en-US/04267598-8c64-4061-b8be-6f1cd48fc664/page-frame-caption-weird-problem-vfp-9
     https://social.msdn.microsoft.com/Forums/en-US/ed7ce735-1fba-47c4-a76e-b66618f7700b/page-frame-caption-property

     4, mzvfp.com:
     http://www.mzvfp.com/read.php?tid=100330

     5, tek-tips.com:
     http://www.tek-tips.com/viewthread.cfm?qid=1617661


6. OTHER:

     For reference only, there is no guarantees.

     Any questions or suggestions, please send me an email at ccb2000@163.com.