Página 1 de 1
Botão em programa console xharbour
Enviado: 29 Mar 2017 20:57
por lugab
Olá, pessoal...
Pensei em fazer algo, no meu executável console (xharbour + bcc55 + Visual Lib) e não sei se é possível.
Minha idéia é colocar um botão, uma figura ou qualquer outra solução em algum lugar livre da tela de digitação
de dados, e aí, qdo o usuário clicasse em cima eu executaria um dbedit() ou tbrowse() de um dbf qualquer,
mas sem afetar o GET/READ atual do usuário..
Alguém já fez algo parecido e pode compartilhar o trecho do fonte ?
Grato
Botão em programa console xharbour
Enviado: 02 Abr 2017 10:24
por JoséQuintas
Moleza... depois de criar rotinas.... rs
- O acionamento pelo SET KEY e determinada tecla
- Uma rotina de detecção do mouse, pra executar determinada rotina conforme a posição do clique
- Embutir essa rotina, ou chamada dela, na getsys
A partir daí, só definir coordenadas e ação
Se não entendeu...
o retângulo a ser clicado ter quatro coordenadas: linha, coluna, linha, coluna
e vai trocar isso por uma tecla.
Então é um array com isso { linha, coluna, linha, coluna, tecla }
No clique, vai analisar as coordenadas e trocar pela tecla.
O restante, o SET KEY normal vai fazer.
E se fosse Harbour e GTWVG, poderia ser diretamente um botão mesmo.
Talvez dê pra fazer tudo pelo SET KEY, se for possivel direcionar o clique do mouse com SET KEY.
Botão em programa console xharbour
Enviado: 02 Abr 2017 11:12
por alxsts
Olá!
Creio que seja mais fácil usar algo nativo da linguagem.
Use o
@...GET PUSHBUTTON. Dá até para integrar com o
@...GET TBROWSE. Isso épossível desde o Clipper 5.3 e tem exemplos nestes links.
Botão em programa console xharbour
Enviado: 02 Abr 2017 20:37
por lugab
Obrigado, Alexandre...
A solução "pushbotton" não me atende, pq ela interfere nos outros "get/read" ativos.
Ela própria é ativada através de um "get", veja o exemplo do seu link:
Código: Selecionar todos
@ 5, 20 GET lCancel PUSHBUTTON ;
CAPTION "&Cancel"
STATE { || ReadKill( .T. ) }
Obrigado, Quintas
O caminho é esse mesmo q vc postou, eu só não tenho 1/10 do seu "know how" pra ser capaz de desenvolver
um fonte que faça isso...
Vou esperar, pra ver se alguém tem um fontezinho pra eu piratear..
Botão em programa console xharbour
Enviado: 02 Abr 2017 22:33
por acelconsultoria
Boa noite, lugab
Se você já usa a Visual Lib, tem uma função que faz essa associação de uma determinada coordenada da tela com uma tecla e com o mouse. Na demo da Visual Lib, lá do clipper, tem o exemplo disso.
Código: Selecionar todos
Set Key K_F1 To Minha_Funcao()
SetKeyMouse( K_F1, { 24, 24, 00, 07 } ) // Associa a tecla F1 às coordenadas
Aí, toda vez que teclar F1 ou clicar com o mouse na coordenada, o programa chama a função.
Botão em programa console xharbour
Enviado: 02 Abr 2017 23:25
por Vlademiro
Ative o suporte ao mouse no seu aplicativo
Código: Selecionar todos
SET EVENTMASK TO INKEY_ALL // Mouse
SETKEY( K_MWFORWARD, {|| HB_KEYPUT(K_SH_TAB)})
SETKEY( K_MWBACKWARD, {|| HB_KEYPUT(K_TAB)})
MDblClk( 167 ) // Espera pouco pelo duplo clique
Para "desenhar o botão" mude a cor de fundo da tela. É bom armazenar as coordenadas e cores em um arquivo CH.
Código: Selecionar todos
@ BUTTON_PREVIOUS_ROW, BUTTON_PREVIOUS_COL;
SAY BUTTON_PREVIOUS_LABEL COLOR COLOR_BUTTON
Dentro da função (chamada por setkey) use as funçoes MCOL() e MROW() para determinar se a linha e a coluna do ponteiro do mouse estão entre as coordenadas do seu botão. Mais ou menos assim
e por aí vai.
Agora foi que notei que vc usa xharbour. Eu fiz em harbour dessa forma que descrevi e funciona perfeitamente. A diferença é que não uso setkey, eu coloquei botões automaticamente dentro do getlist.prg, assim todo get eles aparecem.
Botão em programa console xharbour
Enviado: 03 Abr 2017 03:21
por lugab
Obrigado, Maickon
Funcionou... Só falta colocar alguma coisa, tipo um botão ou um BMP na coordenda, pra não ficar uma área
sem nenhuma indicação...
Obrigado, Vlademiro
Faltou definir "BUTTON_PREVIOUS_LABEL"
Botão em programa console xharbour
Enviado: 03 Abr 2017 08:53
por acelconsultoria
Lugab,
Que bom que deu certo.
Eu lembro que, com a própria Visual Lib, eu desenhava uns botões de improviso com a função "Frame". Mas no Harbour, sem os caracteres especiais da fonte TTF da Visual Lib, acho que não deve ficar bom.
Maickon Sato