Página 1 de 1
hmg344 enable e disable em todos os items menu automaticamen
Enviado: 01 Mai 2019 12:15
por syslink
algum de vcs tem um codigo de como fazer atraves de for next ou outro codigo uma forma dinamica e automatica pra q todas as opcoes do menu sejam desabilitadas ao mesmo tempo e a seu tempo reabilitadas novamente
to tentano assim
Código: Selecionar todos
for nItem = 1 to len (aITEM_NAME)
// setproperty('form_main','&aITEM_NAME[nItem]','enabled' , '.f.')
form_main.&(aITEM_NAME[nItem]).enabled := .f.
// form_main.&(aITEM_NAME)[nItem].enabled := .f.
// form_main.aITEM_NAME[nItem].enabled := .f.
next nItem
da o seuguinte erro em qq das opcoes acima (as comentadas)
error e0030 error sintax at '.'
a criacao do aITEM_NAME e
// letra o e nao o numero 0
aqui que chama e tb da o mesmo error q ja falei
Código: Selecionar todos
ITEM aITEM[aV] NAME aITEM_NAME[aV] ACTION { || EXE_MOD ({|| aVETOR[aV] }) }
a variavel av eh do laço for/next
hmg344 enable e disable em todos os items menu automaticamen
Enviado: 01 Mai 2019 13:11
por syslink
tava esqueceno
matriz aVetor eh
matriz aItem e
Código: Selecionar todos
aITEM := {hb_ansiToOem("&vendas"),hb_ansiToOem("&compras"),hb_ansiToOem("&relatórios"),hb_ansiToOem("&extratos"),hb_ansiToOem("histórico")}
hmg344 enable e disable em todos os items menu automaticamen
Enviado: 01 Mai 2019 13:23
por MSDN
Essa parte de menu, até hoje tem programador que quer fazer como fazia no Clipper, cada um tinha uma ideia diferente usando array e parâmetros pra isso, pra aquilo, etc, em programação usando API Windows, faça o básico, cria o menu usando define menu.....item.....e por ai vai, e coloca a chamada no action, se quiser habilitar e desabilitar itens do menu de acordo com o usuário logado, quando abre a janela faz isso no evento de inicialização e pronto.
hmg344 enable e disable em todos os items menu automaticamen
Enviado: 01 Mai 2019 15:58
por syslink
syslink escreveu:1 ITEM aITEM[aV] NAME aITEM_NAME[aV] ACTION { || EXE_MOD ({|| aVETOR[aV] }) }
essa linha nao executa o vetor
syslink escreveu:1 aVETOR := {"v01","c01","r01","e01","h01"}
q deveria ser executado... exemplo se clicar pra abrir o item "v01" do vetor avetor acima
no bock era assim no formato manual
Código: Selecionar todos
// ITEM (HB_AnsiToOem("&vendas")) ACTION { || EXE_MOD ({|| V1 ()}) }
a linha acima executava normalmente
com a mudanca pra ser auto da o seguinte erro runtime
Date:01/05/2019 Time: 15:52:39
Error BASE/1449 Erro de sintaxe: &
Código: Selecionar todos
Called from _DEFINEMENUITEM(202)
Called from MENUTESTE(5785) // esta e a linha do action exe_mod
Called from PRG3599(4404)
Called from MAIN(1365)
algum de vcs sabe como fazer o codeblock funcionar com a linha e o q modificar nela pra rodar
Código: Selecionar todos
ITEM aITEM[aV] NAME aITEM_NAME[aV] ACTION { || EXE_MOD ({|| aVETOR[aV] }) }
hmg344 enable e disable em todos os items menu automaticamen
Enviado: 01 Mai 2019 16:26
por syslink
MSDN escreveu:faça o básico, cria o menu usando define menu
isso acredito q todos nos sabemos. cada um do seu jeito.
preciso de algo automatizado q via for/next habita todos ao mesmo tempo. nao e pra usuario previlegiado e sim pra evitar o usuario clicar no menu novamente
enquanto nao encerrar o modulo o menu fica desabilitado
migrar aos poucos de console pra grafico e nao gerar conflito
manualmente da um montao de linhas e sabemos fazer, afinal ja era assim no clipper
hmg344 enable e disable em todos os items menu automaticamen
Enviado: 01 Mai 2019 17:36
por JoséQuintas
Deixa eu ver se entendi....
Vai habilitar/desabilitar o menu inteiro?
Tem uma rotina que cria o menu....
Ué.. pra que controlar isso e ter problemas?
Joga o menu fora, e quando precisar cria de novo.
hmg344 enable e disable em todos os items menu automaticamen
Enviado: 01 Mai 2019 23:02
por Nascimento
simples assim
Código: Selecionar todos
public aITEM_NAME := {"O1","O2","O3","O4","O5"}
for nItem = 1 to len (aITEM_NAME)
SetProperty('form_main',aITEM_NAME[nItem],'enabled' , '.f.')
next nItem
desta forma ficaria como vc fizesse isso aqui...
SetProperty('form_main',"01",'enabled' , '.f.'), depois "02" assim sucessivamente
lembrando que: tem que existir o objeto "01", "02"... etc
no form_main, em fim acho que vc entendeu, mais funciona sim tranquilamente!!
eu particularmente uso muito o laço de
for para criação de textbox, labeis entre outros, mais tambem para enable e disable, de textbox e outros, no meu ponto de vista ajuda muito rsrs
hmg344 enable e disable em todos os items menu automaticamen
Enviado: 02 Mai 2019 14:34
por syslink
Nascimento escreveu:SetProperty('form_main',aITEM_NAME[nItem],'enabled' , '.f.')
legal
Nascimento escreveu:lembrando que: tem que existir o objeto "01", "02"... etc
mas pra não ocorrer na confusão dos nomes para cada item prefiro acrescentar a propriedade "name" no itemmenu
syslink escreveu:com a mudanca pra ser auto da o seguinte erro runtime
Date:01/05/2019 Time: 15:52:39
e este erro de runtime ?
pra funcionar o codblock eu faço assim manualmente
Código: Selecionar todos
ITEM (HB_AnsiToOem("&vendas")) ACTION { || EXE_MOD ({|| v01 ()}) }
pra criar todos automatico estou tentano assim
Código: Selecionar todos
ITEM aITEM[aV] NAME aITEM_NAME[aV] ACTION { || EXE_MOD ({|| aVETOR[aV] }) }
o erro em seguida em runtime e´h
Date:01/05/2019 Time: 15:52:39
Error BASE/1449 Erro de sintaxe: &
so falta isso pra fechar o quebra cabeça
JoséQuintas escreveu:Ué.. pra que controlar isso e ter problemas?
Joga o menu fora, e quando precisar cria de novo.
como faço pra jogar fora? seria o destroy()?
hmg344 enable e disable em todos os items menu automaticamen
Enviado: 02 Mai 2019 16:09
por microvolution
syslink escreveu:como faço pra jogar fora? seria o destroy()?
Prezados nobres professores.
não entendo quase nada, mas, o que o nobre JQuintas se refere está neste link
https://pctoledo.org/forum/viewto ... 45&t=17120
Abraços!
hmg344 enable e disable em todos os items menu automaticamen
Enviado: 02 Mai 2019 18:32
por syslink
vou acessa o foro agora
hmg344 enable e disable em todos os items menu automaticamen
Enviado: 03 Mai 2019 10:27
por syslink
deu certo eh o q quero