Jump to content
Fivewin Brasil

Reabrir menu após executar uma opção


Yury

Recommended Posts

olá pessoal,

estou tentando criar alguma rotina que faça a reconstrução do menu e sub-níveis após executar a função do action...

motivo: muitos clientes reclamando de que após executar uma opção o menu fecha e tem que iniciar do primeiro nível novamente, e para menus complexos, com muitos programas, com sequencias de rotinas encadeadas, fica realmente ruim...

estou tentando fazer isto simulando uma sequencia de teclas

até atingir o nivel do menu desejado...

está de uma forma meio tosca, pois via classe não consegui descobrir nada que pudesse ajudar...

peço a gentileza que testem a rotina abaixo e vejam se tem alguma idéia para melhorar, ou alguma outra forma de fazer, novas idéias, etc...

a rotina abaixo funciona, porém tem um problema, que é a tecla ALT que fica pressionada, e se der um ESC sai da janela...

conto com a ajuda de vocês

um abraço

segue código abaixo:


#include 'FiveWin.ch'

//----------------------------------------------------

Function Main()

public oWnd, oMenu

menu oMenu

menuitem '&Clientes'

menu

menuitem 'Cons&ultas'

menu

menuitem '&Codigo' ACTION fx('CU')

menuitem '&Nome' ACTION fx('CU')

menuitem 'Cid&ade' ACTION fx('CU')

endmenu

menuitem 'Inclusao' ACTION fx('C')

menuitem 'Exclusao' ACTION fx('C')

endmenu

menuitem '&Fornecedores'

menu

menuitem 'Inclusao' ACTION fx('F')

menuitem 'Exclusao' ACTION fx('F')

menuitem '&Listagem'

menu

menuitem '&Codigo' ACTION fx('FL')

menuitem '&Nome' ACTION fx('FL')

menuitem 'Cid&ade' ACTION fx('FL')

endmenu

endmenu

menuitem '&Produtos'

menu

menuitem 'Inclusao' ACTION fx('P')

menuitem 'Exclusao' ACTION fx('P')

menuitem '&Cadastros'

menu

menuitem '&Codigo' ACTION fx('PC')

menuitem '&Descricao' ACTION fx('PC')

menuitem '&Grupo' ACTION fx('PC')

menuitem '&Tipo'

menu

menuitem '&Revenda' ACTION fx('PCT')

menuitem '&Exportacao' ACTION fx('PCT')

menuitem '&Importacao' ACTION fx('PCT')

menuitem '&Produzido' ACTION fx('PCT')

endmenu

endmenu

endmenu

endmenu

DEFINE WINDOW oWnd FROM 0, 0.1 TO 35.6, 100 MDI;

COLORS CLR_BLACK,CLR_WHITE;

MENU oMenu;

TITLE "Reconstrução de Menu após Action"

ACTIVATE WINDOW oWnd

return

//----------------------------------------------------

//----------------------------------------------------

function fx( cNivel )

local nCont := 0

local cLetr := ''

local cProg := STRTRAN(oMenu:oLastItem:cPrompt,'&','')

msginfo( "Executando '"+cProg + CRLF + CRLF + ;

"Ao sair desta opção o menu será reconstruído !!! "+ CRLF + CRLF + ;

"Tecle < OK >..." )

for nCont=1 to len(cNivel)

cLetr = subst(cNivel,nCont,1)

IF nCont=1

keybd_event(VK_MENU,0,0,0)

keybd_event( CHR( cLetr ),0,0,0)

else

keybd_event( CHR( cLetr ),0,0,0)

endif

next

return

//----------------------------------------------------

//----------------------------------------------------

DLL32 FUNCTION keybd_event(bVk AS 7 ,;

bScan AS 7 ,;

dwFlags AS 8,;

dwExtraInfo AS 7) ;

AS 7 PASCAL LIB "User32.dll"

//----------------------------------------------------

id=code>id=code>

Yury Marcelino Al

Viman Sistemas

vimansca@vimansca.com.br

yury030575@yahoo.com.br (msn)

skype: yury.marcelino.al

Leme / SP

FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say

Editado por - yury on 14/03/2008 08:23:01

Link to comment
Share on other sites

  • Replies 55
  • Created
  • Last Reply

Top Posters In This Topic

olá pessoal,

estou tentando criar alguma rotina que faça a reconstrução do menu e sub-níveis após executar a função do action...

motivo: muitos clientes reclamando de que após executar uma opção o menu fecha e tem que iniciar do primeiro nível novamente, e para menus complexos, com muitos programas, com sequencias de rotinas encadeadas, fica realmente ruim...

estou tentando fazer isto simulando uma sequencia de teclas

até atingir o nivel do menu desejado...

está de uma forma meio tosca, pois via classe não consegui descobrir nada que pudesse ajudar...

peço a gentileza que testem a rotina abaixo e vejam se tem alguma idéia para melhorar, ou alguma outra forma de fazer, novas idéias, etc...

a rotina abaixo funciona, porém tem um problema, que é a tecla ALT que fica pressionada, e se der um ESC sai da janela...

conto com a ajuda de vocês

um abraço

segue código abaixo:


#include 'FiveWin.ch'

//----------------------------------------------------

Function Main()

public oWnd, oMenu

menu oMenu

menuitem '&Clientes'

menu

menuitem 'Cons&ultas'

menu

menuitem '&Codigo' ACTION fx('CU')

menuitem '&Nome' ACTION fx('CU')

menuitem 'Cid&ade' ACTION fx('CU')

endmenu

menuitem 'Inclusao' ACTION fx('C')

menuitem 'Exclusao' ACTION fx('C')

endmenu

menuitem '&Fornecedores'

menu

menuitem 'Inclusao' ACTION fx('F')

menuitem 'Exclusao' ACTION fx('F')

menuitem '&Listagem'

menu

menuitem '&Codigo' ACTION fx('FL')

menuitem '&Nome' ACTION fx('FL')

menuitem 'Cid&ade' ACTION fx('FL')

endmenu

endmenu

menuitem '&Produtos'

menu

menuitem 'Inclusao' ACTION fx('P')

menuitem 'Exclusao' ACTION fx('P')

menuitem '&Cadastros'

menu

menuitem '&Codigo' ACTION fx('PC')

menuitem '&Descricao' ACTION fx('PC')

menuitem '&Grupo' ACTION fx('PC')

menuitem '&Tipo'

menu

menuitem '&Revenda' ACTION fx('PCT')

menuitem '&Exportacao' ACTION fx('PCT')

menuitem '&Importacao' ACTION fx('PCT')

menuitem '&Produzido' ACTION fx('PCT')

endmenu

endmenu

endmenu

endmenu

DEFINE WINDOW oWnd FROM 0, 0.1 TO 35.6, 100 MDI;

COLORS CLR_BLACK,CLR_WHITE;

MENU oMenu;

TITLE "Reconstrução de Menu após Action"

ACTIVATE WINDOW oWnd

return

//----------------------------------------------------

//----------------------------------------------------

function fx( cNivel )

local nCont := 0

local cLetr := ''

local cProg := STRTRAN(oMenu:oLastItem:cPrompt,'&','')

msginfo( "Executando '"+cProg + CRLF + CRLF + ;

"Ao sair desta opção o menu será reconstruído !!! "+ CRLF + CRLF + ;

"Tecle < OK >..." )

for nCont=1 to len(cNivel)

cLetr = subst(cNivel,nCont,1)

IF nCont=1

keybd_event(VK_MENU,0,0,0)

keybd_event( CHR( cLetr ),0,0,0)

else

keybd_event( CHR( cLetr ),0,0,0)

endif

next

return

//----------------------------------------------------

//----------------------------------------------------

DLL32 FUNCTION keybd_event(bVk AS 7 ,;

bScan AS 7 ,;

dwFlags AS 8,;

dwExtraInfo AS 7) ;

AS 7 PASCAL LIB "User32.dll"

//----------------------------------------------------

id=code>id=code>

Yury Marcelino Al

Viman Sistemas

vimansca@vimansca.com.br

yury030575@yahoo.com.br (msn)

skype: yury.marcelino.al

Leme / SP

FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say

Editado por - yury on 14/03/2008 08:23:01

Link to comment
Share on other sites

citação:

Você se refere a reabrir o menu? Pensei que :GetSubMenu(hPopUp) service para isso.


id=quote>id=quote>

olá Delair, é isto mesmo, reabrir o menu... mas pelo que vi este método não faz isto, ou estou utilizando errado... vc tem alguma rotina/exemplo utilizando o método :GetSubMenu(hPopUp) ?

citação:

************************

function atualizamenu()

************************

oMenu:end() //finaliza o obj do menu

... //uma funcao para recostruir o menu

ownd:setmenu(omenu) //ativa menu

SysRefresh()

return(.t.)

Espero ter ajudado


id=quote>id=quote>

Obrigado Aoki, mas esta função é para refazer o menu do sistema, oque estou querendo é que que ele reabra de onde parou. Mesmo assim obrigado pela atenção...

abraços

Yury Marcelino Al

Viman Sistemas

vimansca@vimansca.com.br

yury030575@yahoo.com.br (msn)

skype: yury.marcelino.al

Leme / SP

FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say

Link to comment
Share on other sites

Bom Dia,

Não existe nada padrão para fazer isto, inclusive nunca vi nada funcionando no Windows assim, acredito que não tenha como fazer, até hoje não vi nada que permita na API do Windows.

e-mail: gilmer@fivewin.com.br

msn: fivewinbrasil@hotmail.com

Link to comment
Share on other sites

citação:

Bom Dia,

Não existe nada padrão para fazer isto, inclusive nunca vi nada funcionando no Windows assim, acredito que não tenha como fazer, até hoje não vi nada que permita na API do Windows.

e-mail: gilmer@fivewin.com.br

msn: fivewinbrasil@hotmail.com


id=quote>id=quote>

Bom Dia, creio que não exista nada pronto mesmo, nem pela API...

mas vc chegou a testar a rotina que eu postei acima ?

abraços

Yury Marcelino Al

Viman Sistemas

vimansca@vimansca.com.br

yury030575@yahoo.com.br (msn)

skype: yury.marcelino.al

Leme / SP

FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say

Link to comment
Share on other sites

citação:

Esta resposta do Linares, não funcionou?

http://fivetechsoft.com/forums/viewtopic.php?t=10301

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe


id=quote>id=quote>

não, isto q ele postou não expande o menu...

um abraço

Yury Marcelino Al

Viman Sistemas

vimansca@vimansca.com.br

yury030575@yahoo.com.br (msn)

skype: yury.marcelino.al

Leme / SP

FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say

Editado por - yury on 14/03/2008 09:48:35

Link to comment
Share on other sites

citação:

citação:

Esta resposta do Linares, não funcionou?

http://fivetechsoft.com/forums/viewtopic.php?t=10301

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe


id=quote>id=quote>

não, isto q ele postou não expande o menu...

um abraço

Yury Marcelino Al

Viman Sistemas

vimansca@vimansca.com.br

yury030575@yahoo.com.br (msn)

skype: yury.marcelino.al

Leme / SP

FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say

Editado por - yury on 14/03/2008 09:48:35


id=quote>id=quote>

EXPANDE O MENU??? NÃO ENTENDO??

EU ENTENDI, QUE VOCE QUER AO PARTIR DE UM ITEM DO MENU, AO VOLTAR, FOCAR NO MESMO ITEM QUE PARTIU... NÃO É ISSO? OU EU ESTOU LOUCO??

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Link to comment
Share on other sites

citação:

EXPANDE O MENU??? NÃO ENTENDO??

EU ENTENDI, QUE VOCE QUER AO PARTIR DE UM ITEM DO MENU, AO VOLTAR, FOCAR NO MESMO ITEM QUE PARTIU... NÃO É ISSO? OU EU ESTOU LOUCO??

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe


id=quote>id=quote>

1º) vc não está louco, você É louco !!!!! huhuhuhuh

2º) é isto mesmo que vc disse, voltar no nivel do menu de onde chamou o programa, é que eu usei a palavra expande para dizer isto, mas é oq vc falou...

abraços

Yury Marcelino Al

Viman Sistemas

vimansca@vimansca.com.br

yury030575@yahoo.com.br (msn)

skype: yury.marcelino.al

Leme / SP

FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say

Link to comment
Share on other sites

citação:

citação:

EXPANDE O MENU??? NÃO ENTENDO??

EU ENTENDI, QUE VOCE QUER AO PARTIR DE UM ITEM DO MENU, AO VOLTAR, FOCAR NO MESMO ITEM QUE PARTIU... NÃO É ISSO? OU EU ESTOU LOUCO??

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe


id=quote>id=quote>

1º) vc não está louco, você É louco !!!!! huhuhuhuh

2º) é isto mesmo que vc disse, voltar no nivel do menu de onde chamou o programa, é que eu usei a palavra expande para dizer isto, mas é oq vc falou...

abraços

Yury Marcelino Al

Viman Sistemas

vimansca@vimansca.com.br

yury030575@yahoo.com.br (msn)

skype: yury.marcelino.al

Leme / SP

FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say


id=quote>id=quote>

MEU PIGLIO, EU ACHO QUE VOCE SOMENTE CONSEGUE, SE VOCE CRIAR OBJETOS PARA TODOS OS ITENS DO MENU, DIZER QUE SAO MEMVAR, DISPARAR, E AO VOLTAR, DAR UM XFOCUS( oObeto do Menu ), NOS PARENTESIS DO DISPARO. NÃO TENHO CERTEZA, SOMENTE TENTANDO.

OUTRA SAIDA, É CRIAR MENUS VIA CLASSE, MAS AI, É UMA PAULEIRA DO INFERNO. EDNALDO ROLIM, SE NÃO FALHA OS NEURONIOS SUPER PODEROSOS, CONSEGUE FAZER ISSO, MAS EU NÃO TENHO A INELIGENCIA QUE ELE TEM, PARA REPRODUZIR ISTO.

OU ENTÃO, APESAR DE FICAR NO MURO, A RESPOSTA DO GILMER, PODE ESTAR CORRETA... MAS EU DUVIDO(hehehehehe). Là VEM O VAGNER WIRTS, PARA DEFENDE-LO. KKKKKKKKKKKKKKKKKK.

Abraços.

João Santos - São Paulo.

kmt_karinha@pop.com.br

kapiaba@brfree.com.br

Fone: (11) 3106-2832

FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe

Editado por - kapiaba on 14/03/2008 12:09:36

Link to comment
Share on other sites

ok, pessoal

vou realizar alguns testes e experimentações aqui, obtendo sucesso eu reporto aqui...

obrigado pela atenção e ajuda de todos

um abraço

Yury Marcelino Al

Viman Sistemas

vimansca@vimansca.com.br

yury030575@yahoo.com.br (msn)

skype: yury.marcelino.al

Leme / SP

FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say

Link to comment
Share on other sites

  • 2 weeks later...

Oi Yuri.

Demorei, mas consegui entender o problema. É que Keybd_Envent() processa separadamente os dois eventos: pressionar e soltar a tecla.

No teu exemplo você simula estar pressionando e não simula soltar a tecla Alt.

Acho que consegui uma solução para o teu caso. Basta chamar a função, a segui, no final de suas rotinas, informando o menu que a chamou e ela se encarrega de reabrir na posição final, sozinha.

.#define KEYEVENTF_EXTENDEDKEY 1

.#define KEYEVENTF_KEYUP 2

.

.* 1º - Descobre a o caminho até oM:LastItem()

.* 2º - Ao sair, simula Alt para abrir o menu e em seguida

.* a seqüência de setas para navegar até oM:LastItem()

.function ShowMenu( oM, nNiv )

.local nItem, oLItM :=oM:LastItem(), cMov :="", cMv, nChr

.* default oM :=GetWndFrame():oMenu

.default nNiv :=0

.for nItem :=1 to Len( oM:aItems )

. if ValType( oM:aItems[nItem]:bAction ) ='O'

. cMv :=ShowMenu( oM:aItems[nItem]:bAction, nNiv+1 )

. if Right( cMv,1 ) =="x"

. cMov += Chr( if( nNiv =0, VK_DOWN, VK_RIGHT ) )+cMv

. if nNiv ==0

. cMov :=Left( cMov,Len(cMov)-1 )

.* MsgInfo( StrTran( StrTran( cMov,Chr(VK_DOWN),"V" ), Chr(VK_RIGHT), ">" ) ) // mostra a sequencia de movimentos.

. keybd_event( VK_MENU,0,0,0)

. keybd_event( VK_MENU,0,KEYEVENTF_KEYUP,0)

. for nChr :=1 to Len( cMov )

. keybd_event( Asc(SubStr(cMov,nChr,1)),0,0,0 )

. keybd_event( Asc(SubStr(cMov,nChr,1)),0,KEYEVENTF_KEYUP,0 )

. next

. return .T.

. endif

. return cMov

. endif

. else

. if oM:aItems[nItem]:nId == oLItM:nId

. return cMov+"x"

. endif

. endif

. if !Empt( oM:aItems[nItem]:cPrompt ) // se não for um separador

. cMov +=Chr( if( nNiv =0, VK_RIGHT, VK_DOWN ) )

. endif

.next

.return if(nNiv ==0, .F., "")

Coloquei os pontos a esquerda para preservar a identação, não sei como de outra forma.

Funcionou bem com FWH 8.02.

-----------------------------------------------------------

FiveWin 8.02/ xHarbour 8.02 / Workshop / ADS 6.11

Link to comment
Share on other sites

poderia criar um exemplo e postar em dicas ?

com o exe junto e os fontes

toda informação é bem vinda pra quem esta começando

como eu ....

valeu

******

xharbour 1.1.0 + gtwvw + dbfcdx

fw 8.01+borland resouce workshop/fw pcc

USANDO GTWVW + FW JUNTO ....

msn..: zazibr@hotmail.com

skype: zazibr

Daniel lopes Filho

Campo Grande/MS

Link to comment
Share on other sites

É muito símples. Basta chamar ShowMenu( oMenu ), no final da rotina chamada por oMenu.

Como faço para postar o exemplo em dicas?

#define KEYEVENTF_KEYUP 2

* 1º - Descobre a o caminho até oM:LastItem()

* 2º - Ao sair, simula Alt para abrir o menu e em seguida

* a seqüência de setas para navegar até oM:LastItem()

function ShowMenu( oM, nNiv )

local nItem, oLItM :=oM:LastItem(), cMov :="", cMv, nChr

default oM :=GetWndFrame():oMenu

default nNiv :=0

for nItem :=1 to Len( oM:aItems )

if ValType( oM:aItems[nItem]:bAction ) ='O'

cMv :=ShowMenu( oM:aItems[nItem]:bAction, nNiv+1 )

if Right( cMv,1 ) =="x"

cMov += Chr( if( nNiv =0, VK_DOWN, VK_RIGHT ) )+cMv

if nNiv ==0

cMov :=Left( cMov,Len(cMov)-1 )

* MsgInfo( StrTran( StrTran( cMov,Chr(VK_DOWN),"V" ), Chr(VK_RIGHT), ">" ) ) // mostra a sequencia de movimentos.

keybd_event( VK_MENU,0,0,0)

keybd_event( VK_MENU,0,KEYEVENTF_KEYUP,0)

for nChr :=1 to Len( cMov )

keybd_event( Asc(SubStr(cMov,nChr,1)),0,0,0 )

keybd_event( Asc(SubStr(cMov,nChr,1)),0,KEYEVENTF_KEYUP,0 )

next

return .T.

endif

return cMov

endif

elseif oM:aItems[nItem]:nId == oLItM:nId

return cMov+"x"

endif

if !Empt( oM:aItems[nItem]:cPrompt ) // se não for um separador

cMov +=Chr( if( nNiv =0, VK_RIGHT, VK_DOWN ) )

endif

next

return if(nNiv ==0, .F., "")

-----------------------------------------------------------

FiveWin 8.02/ xHarbour 8.02 / Workshop / ADS 6.11

Link to comment
Share on other sites

boa pergunta como "postar em dicas"

manda o exemplo + prg e o exe q disponibilizo um link

ate descobrirmos esse mistério "como postar um exemplo em dicas"

******

xharbour 1.1.0 + gtwvw + dbfcdx

fw 8.01+borland resouce workshop/fw pcc

USANDO GTWVW + FW JUNTO ....

msn..: zazibr@hotmail.com

skype: zazibr

Daniel lopes Filho

Campo Grande/MS

Link to comment
Share on other sites

obrigado, Delair...

vou testar amanhã e depois reporto aqui...

a propósito, vc questionou a identação:

na janela onde vc digita a mensagem tem os botões na frente de formatar:

a cerquinha (#) é para postar código, fica |code| no inicio e |/code| no final:

veja a identação correta:


if cVar='XXX'

if nVar=0

if lVar = .T.

msginfo( 'aqui' )

endif

endif

endif

id=code>id=code>

um abraço

Yury Marcelino Al

Viman Sistemas

vimansca@vimansca.com.br

yury030575@yahoo.com.br (msn)

skype: yury.marcelino.al

Leme / SP

FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say

Link to comment
Share on other sites

Daí fica assim:


* 1º - Descobre a o caminho até oM:LastItem()

* 2º - Ao sair, simula Alt para abrir o menu e, em seguida,

* a seqüência de setas para navegar até oM:LastItem()

function ShowMenu( oM, nNiv )

local nItem, oLItM :=oM:LastItem(), cMov :="", cMv, nChr

default oM :=GetWndFrame():oMenu

default nNiv :=0

for nItem :=1 to Len( oM:aItems )

if ValType( oM:aItems[nItem]:bAction ) ='O'

cMv :=ShowMenu( oM:aItems[nItem]:bAction, nNiv+1 )

if Right( cMv,1 ) =="x"

cMov += Chr( if( nNiv =0, VK_DOWN, VK_RIGHT ) )+cMv

if nNiv ==0

cMov :=Left( cMov,Len(cMov)-1 )

* MsgInfo( StrTran( StrTran( cMov,Chr(VK_DOWN),"V" ), Chr(VK_RIGHT), ">" ) ) // mostra a sequencia de movimentos.

keybd_event( VK_MENU,0,0,0)

keybd_event( VK_MENU,0,KEYEVENTF_KEYUP,0)

for nChr :=1 to Len( cMov )

keybd_event( Asc(SubStr(cMov,nChr,1)),0,0,0 )

keybd_event( Asc(SubStr(cMov,nChr,1)),0,KEYEVENTF_KEYUP,0 )

next

return .T.

endif

return cMov

endif

elseif oM:aItems[nItem]:nId == oLItM:nId

return cMov+"x"

endif

if !Empt( oM:aItems[nItem]:cPrompt ) // se não for um separador

cMov +=Chr( if( nNiv =0, VK_RIGHT, VK_DOWN ) )

endif

next

return if(nNiv ==0, .F., "")

id=code>id=code>

Para utilizar basta chamar ShowMenu( oWnd:oMenu ) antes de retornar o foco para oWnd:oMenu.

-----------------------------------------------------------

FiveWin 8.02/ xHarbour 8.02 / Workshop / ADS 6.11

Link to comment
Share on other sites

Olá Pessoal,

Não entendi muito bem como usar isto. Tentei usar assim e não acontece nada.


...

MENUITEM "Minha opcao" MESSAGE "Minha opcao" action TESTE()

...

**************

function TESTE

**************

MSGSTOP( "TESTE" )

ShowMenu( oWnd:oMenu )

return NIL

id=code>id=code>

É assim que usa ?

Obrigado,

Rossine

FW 2.2c + @say + Clipper 5.2e + libs 5.3b / FWH 2.7 + @say + xHarbour Divinópolis/ MG

Link to comment
Share on other sites

citação:

Olá Pessoal,

Não entendi muito bem como usar isto. Tentei usar assim e não acontece nada.


...

MENUITEM "Minha opcao" MESSAGE "Minha opcao" action TESTE()

...

**************

function TESTE

**************

MSGSTOP( "TESTE" )

ShowMenu( oWnd:oMenu )

return NIL

id=code>id=code>

É assim que usa ?

Obrigado,

Rossine

FW 2.2c + @say + Clipper 5.2e + libs 5.3b / FWH 2.7 + @say + xHarbour Divinópolis/ MG


id=quote>id=quote>

Está perfeito desde que sua window principal seja mdi, seu nome seja oWnd e que o menu esteja a ela associado.

Estou enviando um exemplo (fonte + executável) para o Daniel Lopes publicar.

No exemplo corrigi o default para oMenu. Se não passar ele pegara por defeito o menu da janela principal.

-----------------------------------------------------------

FiveWin 8.02/ xHarbour 8.02 / Workshop / ADS 6.11

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...