Senos 54 Posted February 21, 2013 Script Intermediário! - 3 Lista de Aulas: Aula 1: http://herc.ws/board/topic/199-script-intermedi%C3%A1rio-aula-1/ Aula 2: http://herc.ws/board/topic/200-script-intermedi%C3%A1rio-aula-2/ Aula 3: http://herc.ws/board/topic/201-script-intermedi%C3%A1rio-aula-3/ Aula 4: http://herc.ws/board/topic/203-script-intermedi%C3%A1rio-aula-4/ Aula 5: http://herc.ws/board/topic/213-script-intermedi%C3%A1rio-aula-5/ Aula 6: http://herc.ws/board/topic/228-queries-sql-aula-6/ Aula 7: http://herc.ws/board/topic/239-script-intermedi%C3%A1rio-aula-7/ Como prometido, estarei começando com a terceira aula de script (Menu dinâmico e suas teorias). Primeiro assunto da aula: - Menus dinâmicos e suas teorias Menus dinâmicos são essenciais hoje em dia justamente pelo fato da necessidade de otimizações e dinâmismo que podemos dar aos scripts. No meu método de seleção e aprendizado, utilizaremos uma string que será como se você estivesse digitando no select suas opções na hora, facilitando muito. Claro, existem diversas formas de fazer um menu dinâmico, porém essa é a mais simples e prática utilizada hoje em dia. Então partiremos para criar um menu. Para começar, precisamos ter uma variável do tipo STRING, na qual guardaremos as intruções do select. //Faremos ela sem valor nenhum inicialmente, para deopis fazer um loop e adicionar as funções.//Observem que usei uma variável temporária do npc para essa função (mais simples e rápido)set .@cmd$,""; Agora precisamos e setaremos uma lista de opções que serão usadas no seu menu (pode ser feito antes do .@cmd$, caso você queira): setarray .@opt$[0],"Comprar","Vender","Trocar"; Nunca coloque opção de cancelar nessa array, ela será posta mais tarde. Então iniciamos nosso loop que fará a linha de comando, vejamos: for(set @i,0; @i <= getarraysize(.@opt$); set @i,@i+1) set .@cmd$, .@cmd$+.@opt$[@i] + ":"; Entendendo: .@cmd$+.@opt$[@i]+":" .@cmd$ = Prepara a variável que contém a linha do comando atual para adição de mais um item no menu. .@opt$[@i] = É a opção a ser adicionada na linha de comando. ":" = É o que separa as opções em um select. (Como qualquer select sem dinamização, só para exemplo). Agora para finalizar, adicionaremos por último: set .@cmd$, .@cmd$+"Fechar"; //Esse fechar é a última opção de nosso (seu) menu. Finalmente colocamos o select que usará a linha de comando, fazendo o código ficar desta maneira: set .@cmd$,"";setarray .@opt$[0],"Comprar","Vender","Trocar";for(set @i,0; @i <= getarraysize(.@opt$); set @i,@i+1) set .@cmd$, .@cmd$+.@opt$[@i] + ":";set .@cmd$, .@cmd$+"Fechar";select(.@cmd$); Para utilizar o snippet utilize uma forma normal, com a variável retornada por todo tipo de menu, que é a @menu. Para lembrarmos, veja um exemplo simples: select("Oi":"Tchau");if (@menu == 1) mes "Oi";if (@menu == 2) mes "Tchau"; É simplesmente isso, o uso é bem simples como o tutorial, em caso de dúvidas, mande uma PM que ajudarei com toda certeza!Um abraço, Wolf. 4 JulioCF, Schrwaizer, Niunzin and 1 other reacted to this Quote Share this post Link to post Share on other sites