// Testing NON-Modal Dialog Boxes - \SAMPLES\TESTDLGN.PRG
#include "fivewin.ch"
Static MainWnd
Function Main()
DEFINE WINDOW MainWnd FROM 1, 1 TO 22, 75 ;
TITLE "Test" ;
MENU BuildMenu() ;
COLOR "W/B"
ACTIVATE WINDOW MainWnd MAXIMIZED ;
VALID MsgYesNo( "Want to end ?" )
Return NIL
Function BuildMenu()
local oMenu
MENU oMenu
MENUITEM OemToAnsi( "&Try" ) ACTION Try( )
MENUITEM "E&xit" ACTION MainWnd:End()
ENDMENU
Return oMenu
Function Try()
Local oDlg
DEFINE DIALOG oDlg TITLE "Non modal dialog"
@ 2, 2 BUTTON "&End" OF oDlg ACTION oDlg:End( )
/*
ACTIVATE DIALOG oDlg CENTERED NOWAIT ;
VALID MsgYesNo( "Want to close it ?" )
*/
ACTIVATE DIALOG oDlg CENTERED
Return NIL
DATA bAltKey
// Para Acionamento da Tecla Alt+++...
METHOD SysCommand( nType, nLoWord, nHiWord )
en:
METHOD Syscommand( nType, nLowOrd, nHiWord ) Class TWBrowse //Era TcBrowse
Local oFolder, nItem, nButton
Local hCtrl
DO CASE
Case nType == SC_KEYMENU // Alt+...
If ::bAltKey != Nil
Eval( ::bAltKey, nLoWord )
Endif
ENDCASE
Return Super:SysCommand( nType, nLoWord, nHiWord )
// En el modulo:
// Para Acionar a Tecla ALT, Dentro da ListBox(wBrowse.Prg)
oLbx:bAltKey := { | nKey, nFlags | TESTE_KEY( nKey, aGetVenda, oLbx, ;
oDlgVendas, DbClientes, ;
DbEstoque, DbPedidos, ;
DbFornece, oSaida ) }
// Para Usar Tecla ALT+Letra
STATIC FUNCTION Teste_Key( nKey, aGetVenda, oLbx, oDlgVendas, DbClientes, ;
DbEstoque, DbPedidos, DbFornece, oSaida )
LOCAL cKey := CHR( nKey )
LOCAL X, oCtrl, oMeter, oText, lEnd, DeOndeVem, DbSangria
MEMVAR nValorCompra, aSaysMoveis, nTelefone, cNomeClien, nCodigoProd
MEMVAR NNUMEROTEL
IF GetKeyState( VK_CONTROL ) .AND. ;
GetKeyState( VK_SHIFT )
//MsgInfo( " CONTROL + SHIFT + " + cKey )
ELSEIF GetKeyState( VK_CONTROL )
//MsgInfo( " ALT + CONTROL + " + cKey )
ELSEIF GetKeyState( VK_SHIFT )
//MsgInfo( " ALT + SHIFT + " + cKey )
ELSEIF GetKeyState( VK_MENU ) // alt key
//MsgInfo( " ALT + " + cKey + " ACIONADA " )
ENDIF
cKey := Upper( cKey )
IF cKey == "I" // Alt+I
// MsgInfo( " INCLUIR" )
ELSEIF cKey == "A" // Alt+A
// MsgInfo( " ALTERAR" )
ELSEIF cKey == "C" // Alt+C
// Se a ListBox dos Produtos Tiver Ötens...
SELECT ( DbPedidos:cAlias )
GO TOP
IF EOF()
lLigaCliente := .T. //-> Liga o Get dos Clientes
aSaysMoveis[1]:Show()
aGetVenda[1]:Show()
aGetVenda[2]:Show()
XFOCUS( aGetVenda[3] )
RETURN( .T. )
ELSE
nCodigoProd := SPACE( 13 )
aGetVenda[3]:VarPut( nCodigoProd )
aGetVenda[3]:Refresh()
XFOCUS( aGetVenda[3] )
RETURN( .F. )
ENDIF
ELSEIF cKey == "E" // Alt+E
//MsgInfo( " EXCLUIR" )
ELSEIF cKey == "F" // Alt+F FORNECEDORES
// Se a ListBox dos Produtos Tiver Ötens...
SELECT ( DbPedidos:cAlias )
GO TOP
IF EOF()
lLigaCliente := .T. //-> Liga o Get dos Clientes
aSaysMoveis[1]:Show()
aGetVenda[1]:Show()
aGetVenda[2]:Show()
XFOCUS( aGetVenda[3] )
RETURN( .T. )
ELSE
nCodigoProd := SPACE( 13 )
aGetVenda[3]:VarPut( nCodigoProd )
aGetVenda[3]:Refresh()
XFOCUS( aGetVenda[3] )
RETURN( .F. )
ENDIF
ELSEIF cKey == "P" // Alt+P
IF lPesqFone .AND. nValorCompra <= 0
//MsgInfo( " ULTIMOS PEDIDOS DO CLIENTE" )
ULTIMOS_PEDIDOS( nKey, aGetVenda, oLbx, oDlgVendas, DbClientes, ;
DbEstoque, DbPedidos, oSaida )
ELSE
RETURN( .F. )
ENDIF
ELSEIF cKey == "R" // Alt+R
//MsgInfo( OemToAnsi( " RELATàRIOS" ) )
//-> Reservada Para a VALOR NO CAIXA DO DIA -> VALORNCX.PRG
ELSEIF cKey == "V" //-> ALT+V
IF NVALORCOMPRA <= 0
VALORNCX( DbPedidos, DbSangria, oLbx, DeOndeVem := 1, ;
oMeter, oText, lEnd )
ELSE
// mensa
ENDIF
SELECT ( DbPedidos:cAlias )
DbPedidos:SetOrder( 1 )
GO TOP
//-> Codigo do Produto
nCodigoProd := SPACE( 13 )
aGetVenda[3]:VarPut( nCodigoProd )
aGetVenda[3]:Refresh()
XFOCUS( aGetVenda[3] )
//-> Reservada Para a Calculadora - At+X na ListBox dos Produtos
ELSEIF cKey == "X" //-> Chamar a Calculadora
CALCULAD( 0, X, oCtrl )
ENDIF
RETURN( nKey )
Return to FiveWin for Harbour/xHarbour
Users browsing this forum: No registered users and 37 guests