Pra quem ficou curioso: WITH OBJECT que não serve pra nada.
É só comparar os dois fontes.
WITH OBJECT oWindow := MAINWINDOW():New()
:Row := 10
:Col := 10
:Width := 400
:Height := 400
:Title := 'Nice OOP Demo!!!'
:OnInit := { || oWindow:Center() }
WITH OBJECT MainMenu():New()
WITH OBJECT MenuPopup():New( 'PopupPageTest',, 'Page Tests' )
WITH OBJECT MenuItem():New( 'Item1',, 'SET oPage1 Caption' , { || oPage1:Caption := 'New' } ) ; END WITH
WITH OBJECT MenuItem():New( 'Item2',, 'SET oPage1 Image' , { || oPage1:Image := 'open.png' } ) ; END WITH
WITH OBJECT MenuItem():New( 'Item3',, 'SET oPage1 Disable' , { || oPage1:Enabled := .F. } ) ; END WITH
WITH OBJECT MenuItem():New( 'Item4',, 'SET oPage1 Enable' , { || oPage1:Enabled := .T. } ) ; END WITH
WITH OBJECT MenuItem():New( 'Item5',, 'SET oPage1 ToolTip' , { || oPage1:ToolTip := 'ToolTip' } ) ; END WITH
END WITH
WITH OBJECT MenuPopup():New( 'PopupTabTest',, 'Tab Tests' )
WITH OBJECT MenuItem():New( 'Item6' ,, 'SET Tabs Position (Top)' , { || oTab:Position := TAB_TOP } ) ; END WITH
WITH OBJECT MenuItem():New( 'Item7' ,, 'SET Tabs Position (Bottom)' , { || oTab:Position := TAB_BOTTOM } ) ; END WITH
WITH OBJECT MenuItem():New( 'Item8' ,, 'SET Tabs Position (Left)' , { || oTab:Position := TAB_LEFT } ) ; END WITH
WITH OBJECT MenuItem():New( 'Item9' ,, 'SET Tabs Position (Right)' , { || oTab:Position := TAB_RIGHT } ) ; END WITH
WITH OBJECT MenuItem():New( 'Item10',, 'SET Tabs Shape (Triangular)', { || oTab:Shape := TAB_TRIANGULAR } ) ; END WITH
WITH OBJECT MenuItem():New( 'Item11',, 'SET Tabs Shape (Rounded)' , { || oTab:Shape := TAB_ROUNDED } ) ; END WITH
WITH OBJECT MenuItem():New( 'Item12',, 'SET Active Page TO 1' , { || oTab:Value := 1 } ) ; END WITH
WITH OBJECT MenuItem():New( 'Item13',, 'SET Active Page TO 2' , { || oTab:Value := 2 } ) ; END WITH
WITH OBJECT MenuItem():New( 'Item14',, 'SET OnChange Event' , { || oTab:OnChange := { || MsgInfo( 'Changed' ) } } ) ; END WITH
WITH OBJECT MenuItem():New( 'Item15',, 'Clear OnChange Event' , { || oTab:OnChange := { || NIL } } ) ; END WITH
END WITH
END WITH
WITH OBJECT oWindow := MAINWINDOW():New()
:Row := 10
:Col := 10
:Width := 400
:Height := 400
:Title := 'Nice OOP Demo!!!'
:OnInit := { || oWindow:Center() }
END WITH
MainMenu():New()
MenuPopup():New( 'PopupPageTest',, 'Page Tests' )
MenuItem():New( 'Item1',, 'SET oPage1 Caption' , { || oPage1:Caption := 'New' } )
MenuItem():New( 'Item2',, 'SET oPage1 Image' , { || oPage1:Image := 'open.png' } )
MenuItem():New( 'Item3',, 'SET oPage1 Disable' , { || oPage1:Enabled := .F. } )
MenuItem():New( 'Item4',, 'SET oPage1 Enable' , { || oPage1:Enabled := .T. } )
MenuItem():New( 'Item5',, 'SET oPage1 ToolTip' , { || oPage1:ToolTip := 'ToolTip' } )
MenuPopup():New( 'PopupTabTest',, 'Tab Tests' )
MenuItem():New( 'Item6' ,, 'SET Tabs Position (Top)' , { || oTab:Position := TAB_TOP } )
MenuItem():New( 'Item7' ,, 'SET Tabs Position (Bottom)' , { || oTab:Position := TAB_BOTTOM } )
MenuItem():New( 'Item8' ,, 'SET Tabs Position (Left)' , { || oTab:Position := TAB_LEFT } )
MenuItem():New( 'Item9' ,, 'SET Tabs Position (Right)' , { || oTab:Position := TAB_RIGHT } )
MenuItem():New( 'Item10',, 'SET Tabs Shape (Triangular)', { || oTab:Shape := TAB_TRIANGULAR } )
MenuItem():New( 'Item11',, 'SET Tabs Shape (Rounded)' , { || oTab:Shape := TAB_ROUNDED } )
MenuItem():New( 'Item12',, 'SET Active Page TO 1' , { || oTab:Value := 1 } )
MenuItem():New( 'Item13',, 'SET Active Page TO 2' , { || oTab:Value := 2 } )
MenuItem():New( 'Item14',, 'SET OnChange Event' , { || oTab:OnChange := { || MsgInfo( 'Changed' ) } } )
MenuItem():New( 'Item15',, 'Clear OnChange Event' , { || oTab:OnChange := { || NIL } } )