Bom dia amigos !
Primeiramente, quero pedir desculpas aos Moderadores! Verão que, inadvertidamente, postei uma mensagem em lugar errado.(Fontes). Sorry!!
Tenho um menu em cascata, simples e tradicional, como todo principiante e aprendiz faz(creio).
Gostaria que, ao teclar <ESC>, ele se fechasse na ordem em foi abrindo.
Podem me dar uma dica ?
Obrigado!!
[]´s
Netavin.
MENU
Moderador: Moderadores
MENU
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
" Sem saber que era impossível, foi lá e fez !! "
MENU
E aí Grings, blz ?
Olha, eu "enxuguei" bastante a rotina só para postar.
Mas th certeza q dá p entender. Atenha-se ao item "Gerência de Estoque" que terá uma boa idéia do que acontece.
Obrigado ! Grato!
[]´s
Netavin.
Olha, eu "enxuguei" bastante a rotina só para postar.
Mas th certeza q dá p entender. Atenha-se ao item "Gerência de Estoque" que terá uma boa idéia do que acontece.
Código: Selecionar todos
clear screen
DO WHILE .T.
SETCANCEL(.F.)
SET DATE BRIT
SET SCORE OFF
SET CONFIRM ON
SET CENTURY ON
SET EPOCH TO 2000
SET DELETE On
SET UNIQ ON
SET CURSOR OFF
SET MESSAGE TO 48 CENTER
SET WRAP ON
SET COLOR TO G
OP=1
L=11
C=30
@ 06,26 SAY "M E N U G E R E N C I A L"
SET COLOR TO R
@ 05,01 SAY REPLICATE("Ä",78)
@ 07,01 SAY REPLICATE("Ä",78)
SETCOLOR("B/W,W/B")
@ 48,02 clear to 48,77
dispbox(09,25,19,50,chr(219),"bg/w")
@ 10,26 CLEAR TO 18,49
@ L,C-3 PROMPT "Angenda de Telefones"
@ L+1,C-3 PROMPT "Gerˆncia de Estoque "
@ L+2,C-3 PROMPT "RH "
@ L+3,C-3 PROMPT "Setor Comercial "
@ L+4,C-3 Prompt "Backup "
@ L+5,C-3 PROMPT "Finalizar "
MENU TO OP
SETCOLOR("W/N")
DO CASE
CASE OP=1
Loop
CASE OP=2
Save Screen to t_menu
ESTO()
Rest Screen from t_menu
CASE OP=3
Loop
CASE OP=4
Loop
CASE OP=5
Alert("...tô fazendo...")
Rest Screen from t_menu
Loop
Case OP=6
TONE(1100,1)
TONE(1400,1)
TONE(900,1)
Opc:=Alert("Confirma?",{"Sim","NÆo"},"W/B")
If Opc = 1
CLOSE ALL
EXIT
If opc = 2
Loop
endif
Endif
ENDCASE
ENDDO
/* ESTOQUE */
Function Esto()
Do While Lastkey() # 27
Set Cursor off
Set Wrap on
SAIR:=Space(1)
L =11
C =30
OP=1
Setcolor("r+/n")
@ 46,53 Say "<F6>"
Setcolor("w/n")
@ 46,58 Say "Pesquisa especial"
Setcolor("B/W,W/B")
Dispbox (L+2,C+11,L+11,C+23,chr(219),"BG/W")
@ L+3,C+12 Clear to L+10,C+22
@ L+4,C+13 Prompt "InclusÆo "
@ L+5,C+13 Prompt "Consulta "
@ L+6,C+13 Prompt "Baixa "
@ L+7,C+13 Prompt "ExclusÆo "
@ L+8,C+13 Prompt "Relat¢rio"
@ L+9,C+13 Prompt "Altera‡Æo"
Menu to OP
Do Case
Case OP=1
Dispbox(L+5,C+15,L+11,C+26,chr(219),"BG/W")
@ L+6,C+16 Clear to L+10,C+25
@ L+7,C+17 Prompt "submenu "
@ L+8,C+17 Prompt "submenu "
@ L+9,C+17 Prompt "submenu "
Menu to OP_I
Do Case
Case OP_I=1
Alert("teste")
Loop
Case OP_I=2
Alert("Teste")
Loop
Case OP_I=3
Alert("Teste")
rest screen from t_menu
Loop
Endcase
Case OP=2
Setcolor("B/W,W/B")
Dispbox (L+6,C+14,L+13,C+26,chr(219),"BG/W")
@ L+7,C+15 Clear to L+12,C+25
@ L+08,C+16 Prompt "Menu 1 "
@ L+09,C+16 Prompt "Menu 2 "
@ L+10,C+16 Prompt "Menu 3 "
@ L+11,C+16 Prompt "Menu 4 "
Menu to PO
Setcolor("W,N")
Do Case
Case PO=1
Alert("teste")
Loop
Case PO=2
Setcolor("B/W,W/B")
Dispbox(L+10,C+16,L+15,C+29,chr(219),"BG/W")
@ L+11,C+17 Clear to L+14,C+28
@ L+12,C+18 Prompt "Submenu "
@ L+13,C+18 Prompt "Submenu "
Menu to PO_1
Do Case
Case PO_1=1
Alert("teste")
Loop
Case PO_1=2
Alert("teste")
Rest screen from t_menu
Loop
Endcase
Case PO=3
Alert("Teste")
rest screen from t_menu
Loop
Case PO=4
Setcolor("B/W,W/B")
Dispbox(L+12,C+16,L+17,C+29,chr(219),"BG/W")
@ L+13,C+17 Clear to L+16,C+28
@ L+14,C+18 Prompt "Submenu "
@ L+15,C+18 Prompt "Submenu "
Menu to C_ro
Do Case
Case C_RO = 1
Alert("Teste")
Rest Screen From t_menu
Loop
Case C_RO = 2
Setcolor("B/W,W/B")
Dispbox(L+16,C+21,L+22,C+32,chr(219),"BG/W")
@ L+17,C+22 Clear to L+21,C+31
Setcolor("n/bg")
@ L+17,C+22 Say " Ordem de "
Setcolor("B/W,W/B")
@ L+19,C+23 Prompt "Menu 1 "
@ L+20,C+23 Prompt "Menu 2 "
Menu to C_ro1
Do Case
Case C_ro1 = 1
Alert("teste")
Rest Screen From t_menu
Loop
Case C_ro1 = 2
Alert("teste")
Rest Screen From t_menu
Loop
Endcase
Endcase
Endcase
Case OP=3
Loop
Case OP=4
Setcolor("B/W,W/B")
Dispbox(L+08,C+14,L+15,C+26,chr(219),"BG/W")
@ L+09,C+15 Clear to L+14,C+25
@ L+10,C+16 Prompt "Submenu "
@ L+11,C+16 Prompt "Submenu "
@ L+12,C+16 Prompt "Submenu "
@ L+13,C+16 Prompt "Submenu "
Menu to OP4
Do Case
Case OP4=1
Set Cursor off
Loop
Case OP4=2
Set Cursor off
Loop
Case OP4=3
Loop
Case OP4=4
Set Cursor off
Loop
Endcase
Case OP=5
Setcolor("B/W,W/B")
Dispbox(L+9,C+14,L+15,C+26,chr(219),"BG/W")
@ L+10,C+15 Clear to L+14,C+25
@ L+11,C+16 Prompt "Menu "
@ L+12,C+16 Prompt "Menu "
@ L+13,C+16 Prompt "Menu "
Menu to OP5
Do Case
Case OP5=1
Dispbox(L+12,C+18,L+18,C+29,chr(219),"BG/W")
@ L+13,C+19 Clear to L+17,C+28
@ L+14,C+20 Prompt "Submenu "
@ L+15,C+20 Prompt "Submenu "
@ L+16,C+20 Prompt "Submenu "
Menu to OP5_A
Do Case
Case OP5_A=1
Dispbox(L+16,C+15,L+22,C+32,chr(219),"BG/W")
@ L+17,C+16 Clear to L+21,C+31
@ L+18,C+17 Prompt "Submenu "
@ L+19,C+17 Prompt "Submenu "
@ L+20,C+17 Prompt "Submenu "
Menu to OP_S
Do Case
Case OP_S=1
Loop
Case OP_s=2
Rest screen from t_menu
Loop
Case Op_s=3
Rest Screen from t_menu
Loop
Endcase
Case OP5_A=2
Dispbox(L+16,C+21,L+21,C+32,chr(219),"BG/W")
@ L+17,C+22 Clear to L+20,C+31
@ L+18,C+23 Prompt "submenu "
@ L+19,C+23 Prompt "submenu "
Menu to OP5A_1
Do Case
Case OP5A_1=1
loop
Case OP5A_1=2
Dispbox(L+20,C+24,L+25,C+35,chr(219),"BG/W")
@ L+21,C+25 Clear to L+24,C+34
@ L+22,C+26 Prompt "submenu "
@ L+23,C+26 Prompt "submenu "
Menu to OP5A1
Do Case
Case OP5A1=1
loop
Case OP5A1=2
loop
Endcase
Endcase
Case OP5_A=3
Dispbox(L+17,C+24,L+22,C+32,chr(219),"BG/W")
@ L+18,C+25 Clear to L+21,C+31
@ L+19,C+26 Prompt "subme"
@ L+20,C+26 Prompt "subme"
Menu to OP_E
Do Case
Case OP_E=1
Loop
Case OP_E=2
Rest Screen from t_menu
loop
Endcase
rest screen from t_menu
Endcase
Case OP5=2
Rest screen from t_menu
loop
Case OP5=3
loop
Endcase
Case OP=6
Dispbox(L+10,C+14,L+17,C+26,chr(219),"BG/W")
@ L+11,C+15 Clear to L+16,C+25
@ L+12,C+16 Prompt "menu "
@ L+13,C+16 Prompt "menu "
@ L+14,C+16 Prompt "menu "
@ L+15,C+16 Prompt "menu "
Menu to OP6
Do Case
Case OP6=1
Rest screen from t_menu
loop
Case OP6=2
Rest screen from t_menu
loop
Case OP6=3
Rest screen from t_menu
loop
Case OP6=4
Rest Screen from t_menu
loop
Endcase
Otherwise
Close All
Rest Screen FROM T_menu
Exit
Endcase
Rest Screen FROM T_menu
Enddo[]´s
Netavin.
Editado pela última vez por Pablo César em 10 Mai 2012 22:28, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
" Sem saber que era impossível, foi lá e fez !! "
Netavin,
Pela rápida olhada que dei reparei que vc salva a tela antes de chamar a primeira função e depois recupera-a dentro da função e novamente quando o controle volta para o do case. O que vc tem que fazer é salvar a tela ou parte dela no início da função e quando termina restaura. Quando chamar uma função de dentro de outra o processo é o mesmo, vc tem que salvar várias telas para formar o menu em cascata. Dê uma olhada em SaveScreen(xx,xx,xx,xx,var) e RestScreen(xx,xx,xx,xx,var).
Pela rápida olhada que dei reparei que vc salva a tela antes de chamar a primeira função e depois recupera-a dentro da função e novamente quando o controle volta para o do case. O que vc tem que fazer é salvar a tela ou parte dela no início da função e quando termina restaura. Quando chamar uma função de dentro de outra o processo é o mesmo, vc tem que salvar várias telas para formar o menu em cascata. Dê uma olhada em SaveScreen(xx,xx,xx,xx,var) e RestScreen(xx,xx,xx,xx,var).
MENU
Valeu Grings !!
Vou por em prática.
Grato pela atenção !
[]´s
Netavin.
Vou por em prática.
Grato pela atenção !
[]´s
Netavin.
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
" Sem saber que era impossível, foi lá e fez !! "
