Clipper On Line • Ver Tópico - Get como simular END, HOME, etc.

Get como simular END, HOME, etc.

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Get como simular END, HOME, etc.

Mensagempor Itamar M. Lins Jr. » 01 Abr 2021 19:44

Ola!
Preciso colocar no buffer do teclado a tecla home, end... na edição do GET. Como faço isso ?
Pq no Linux quando uso:
oGetX:SetFocus() fica tudo selecionado e quando digito fica no final do get fora dos espaço reservado.
Por exemplo:
 cGetX := space(10)
oGetX : SetText(cGetX)
oGetX:SetFocus() //Aqui fica todo o get selecionado e quando digito começa no final vai para 11

Se tiverem uma forma melhor, aceito qualquer sugestão.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6949
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 312 vezes
Mens.Curtidas: 506 vezes

Get como simular END, HOME, etc.

Mensagempor asimoes » 01 Abr 2021 19:50

Tenta:

hwg_Keyb_Event( VK_HOME )

WHEN {|| hwg_Keyb_Event( VK_HOME ) } ;
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Get como simular END, HOME, etc.

Mensagempor Itamar M. Lins Jr. » 01 Abr 2021 19:56

Olá!
asimoes escreveu:Tenta:

hwg_Keyb_Event( VK_HOME )

Já tinha tentado isso, mas não tem no Linux.
Preciso entender melhor. Porquê no Linux o GET tem alguns BUGs.
Vou tentar fazer um exemplo demostrando o problema, para ver se eles corrigem.
Estou linkando a lib Hwgui e a procmisc apenas, sabe de qual lib essa função faz parte ?

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6949
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 312 vezes
Mens.Curtidas: 506 vezes

Get como simular END, HOME, etc.

Mensagempor asimoes » 01 Abr 2021 22:07

Itamar M. Lins Jr. escreveu:sabe de qual lib essa função faz parte ?


Essa função tá no fonte misc.c realmente só funciona no windows
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Get como simular END, HOME, etc.

Mensagempor asimoes » 01 Abr 2021 22:13

Itamar,

Achei isso no fonte da GTK (hedit.prg)

ELSEIF wParam == GDK_Home // Home
::lFirst := .F.
hwg_edit_SetPos( ::handle, 0 )
Return 1
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Get como simular END, HOME, etc.

Mensagempor asimoes » 01 Abr 2021 22:18

https://developer.gnome.org/gtk3/stable/GtkEditable.html#gtk-editable-set-position
HB_FUNC( HWG_EDIT_SETPOS )
{
   gtk_editable_set_position( ( GtkEditable * ) HB_PARHANDLE( 1 ),
         hb_parni( 2 ) );
}
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Get como simular END, HOME, etc.

Mensagempor asimoes » 01 Abr 2021 22:20

Nesse caso usa o handle do edit para posicionar
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes

Get como simular END, HOME, etc.

Mensagempor Itamar M. Lins Jr. » 01 Abr 2021 22:30

Ola!
Consegui isolar 2 bugs da Hwgui(get) no Linux.
Já postei lá, vamos ver se corrigem.
1 apaga o conteúdo do get e o outro quando uso setfocus() o cursor posiciona fora do espaço(area) do get, vai para o fim + 1

Vou testar essa HWG_EDIT_SETPOS para ver.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6949
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 312 vezes
Mens.Curtidas: 506 vezes

Get como simular END, HOME, etc.

Mensagempor Itamar M. Lins Jr. » 01 Abr 2021 22:42

Olá!
Cursor no fim
...on click {||oName:SetFocus(),hwg_edit_SetPos( oName:Handle, len(alltrim(oName:value)) ),.T.}

ou Cursor no Inicio
...on click {||oName:SetFocus(),hwg_edit_SetPos( oName:Handle, 0)) ),.T.}

Funcionou blz!!!

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6949
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 312 vezes
Mens.Curtidas: 506 vezes




Retornar para HwGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 3 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro