// C:\FWH\SAMPLES\NATTER3.PRG
#include "Fivewin.ch"
STATIC cName1
FUNCTION Main()
LOCAL oWnd
cName1 := "Test"
DEFINE WINDOW oWnd
oWnd:bRClicked := {| nRow, nCol, nFlags | MyMenu( oWnd, nRow, nCol ) }
ACTIVATE WINDOW oWnd CENTERED
RETURN NIL
FUNCTION MyMenu( oWnd, nRow, nCol )
LOCAL oMenu, oItem1, oItem2, oItem3
LOCAL cName := "Test.."
LOCAL cName2 := "Test2"
MENU oMenu POPUP 2007
// IF lOptionLeft
SwapMouseButton( 1 ) // For Left-handers
// ENDIF
MENUITEM oItem1 PROMPT "Natter Click" ;
ACTION( oWnd:End() )
MENUITEM oItem2 PROMPT cName1
SEPARATOR
MENUITEM oITem3 PROMPT "Others" ACTION MsgInfo( Len( oMenu:aMenuItems ) )
ENDMENU
ACTIVATE POPUP oMenu WINDOW oWnd AT 140, 10
SwapMouseButton( 0 )
RETURN( oMenu )
DLL32 FUNCTION SwapMouseButton(swap AS 7) AS 7 PASCAL LIB "USER32.DLL"
// FIN / END
Natter wrote:Is it possible to handle right-clicking on the TMenuItem object ?
Natter wrote:Thanks, I'll be waiting !
oWnd:bRButtonMenuUp := { | nOrdItem, hMnu, nRow, nCol, o | MsgInfo( "Hello" ) }
Eval( ::bRButtonMenuUp, nOrdIt, hMnu, aPoint[ 1 ], aPoint[ 2 ], Self )
MENU oMen POPUP
MENUITEM oItm PROMPT "Tree"
MENU
MENUITEM oItm PROMPT "First"
MENUITEM oItm PROMPT "Second"
ENDMENU
ENDMENU
// C:\FWH\SAMPLES\TUTOR09.PRG
// First works with browses
#include "FiveWin.ch"
STATIC oWnd
FUNCTION Main()
LOCAL oBar
SET _3DLOOK ON
DEFINE WINDOW oWnd FROM 1, 1 TO 22, 75 ;
TITLE "Using a FiveWin quick browse" ;
MENU( SwapMouseButton( 1 ), BuildMenu() )
DEFINE BUTTONBAR oBar _3D SIZE 26, 27 OF oWnd 2007
DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\printer.bmp" FLAT ;
ACTION( SwapMouseButton( 0 ) )
DEFINE BUTTON OF oBar FILENAME "..\bitmaps\16x16\Exit.bmp" FLAT ;
ACTION( SwapMouseButton( 0 ), oWnd:End() ) TOOLTIP "Exit this app" GROUP
SET MESSAGE OF oWnd ;
TO "FiveWin - The xBase revolution" CENTERED ;
CLOCK DATE KEYBOARD 2007
ACTIVATE WINDOW oWnd MAXIMIZED
RETURN NIL
FUNCTION BuildMenu()
LOCAL oMenu
MENU oMenu 2007
MENUITEM "&Information"
MENU
MENUITEM "&About..." ;
ACTION MsgAbout( "FiveWin Tutorial", FWCOPYRIGHT ) ;
MESSAGE "Information about this program"
SEPARATOR
MENUITEM "&End..." ;
ACTION If( MsgYesNo( "Want to end ?" ), oWnd:End(),) ;
MESSAGE "End this application"
ENDMENU
MENUITEM "&Files"
MENU
MENUITEM "&Customers..." ;
ACTION Customers() ;
MESSAGE "Customers maintainance"
MENUITEM "&Stock" ;
ACTION MsgInfo( "Your Stock control goes here" ) ;
MESSAGE "Stock control"
ENDMENU
MENUITEM "&Utils"
MENU
MENUITEM "&Calculator..." ;
ACTION WinExec( "Calc" ) ;
MESSAGE "Run Windows calculator"
MENUITEM "C&alendar..." ;
ACTION WinExec( "Calendar" ) ;
MESSAGE "Run Windows calendar"
MENUITEM "&Have some fun..." ;
ACTION WinExec( "Sol" ) ;
MESSAGE "Play a game..."
ENDMENU
ENDMENU
RETURN( oMenu )
FUNCTION Customers()
IF .NOT. File( "clientes.dbf" )
dbCreate( "Clientes.dbf", { { "Nombre", "C", 40, 0 }, ;
{ "Direccion", "C", 50, 0 }, ;
{ "Telefono", "C", 12, 0 }, ;
{ "Edad", "N", 2, 0 }, ;
{ "Productos", "C", 10, 0 }, ;
{ "Nivel", "N", 2, 0 } } )
ENDIF
USE Clientes
IF RecCount() == 0
APPEND BLANK
ENDIF
INDEX ON Clientes->Nombre TO CliNombr
SET INDEX TO CliNombr
GO TOP
Browse( "Customers Control", "Cutomers info" )
MsgInfo( "After browse" )
USE
RETURN NIL
DLL32 FUNCTION SwapMouseButton(swap AS 7) AS 7 PASCAL LIB "USER32.DLL"
// FIN / END
Return to FiveWin for Harbour/xHarbour
Users browsing this forum: Google [Bot] and 44 guests