hmg344 enable e disable em todos os items menu automaticamen

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

syslink
Usuário Nível 3
Usuário Nível 3
Mensagens: 132
Registrado em: 20 Fev 2018 13:13
Localização: joinvile/sc

hmg344 enable e disable em todos os items menu automaticamen

Mensagem 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
syslink
Usuário Nível 3
Usuário Nível 3
Mensagens: 132
Registrado em: 20 Fev 2018 13:13
Localização: joinvile/sc

hmg344 enable e disable em todos os items menu automaticamen

Mensagem 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")}
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

hmg344 enable e disable em todos os items menu automaticamen

Mensagem 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.
syslink
Usuário Nível 3
Usuário Nível 3
Mensagens: 132
Registrado em: 20 Fev 2018 13:13
Localização: joinvile/sc

hmg344 enable e disable em todos os items menu automaticamen

Mensagem 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] }) }
syslink
Usuário Nível 3
Usuário Nível 3
Mensagens: 132
Registrado em: 20 Fev 2018 13:13
Localização: joinvile/sc

hmg344 enable e disable em todos os items menu automaticamen

Mensagem 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
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

hmg344 enable e disable em todos os items menu automaticamen

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Nascimento
Usuário Nível 4
Usuário Nível 4
Mensagens: 763
Registrado em: 19 Jul 2008 12:11
Localização: OLINDA-PE

hmg344 enable e disable em todos os items menu automaticamen

Mensagem 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
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina :) clipper 5.3 /harbour/minigui
syslink
Usuário Nível 3
Usuário Nível 3
Mensagens: 132
Registrado em: 20 Fev 2018 13:13
Localização: joinvile/sc

hmg344 enable e disable em todos os items menu automaticamen

Mensagem 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()?
microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

hmg344 enable e disable em todos os items menu automaticamen

Mensagem 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!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
syslink
Usuário Nível 3
Usuário Nível 3
Mensagens: 132
Registrado em: 20 Fev 2018 13:13
Localização: joinvile/sc

hmg344 enable e disable em todos os items menu automaticamen

Mensagem por syslink »

vou acessa o foro agora
syslink
Usuário Nível 3
Usuário Nível 3
Mensagens: 132
Registrado em: 20 Fev 2018 13:13
Localização: joinvile/sc

hmg344 enable e disable em todos os items menu automaticamen

Mensagem por syslink »

deu certo eh o q quero
Responder