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

Código: Selecionar todos

public  aITEM_NAME   := {"O1","O2","O3","O4","O5"}
// 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

Código: Selecionar todos

aVETOR  := {"v01","c01","r01","e01","h01"}
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