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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 765
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: 1234
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