Get como simular END, HOME, etc.

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Get como simular END, HOME, etc.

Mensagem por Itamar M. Lins Jr. »

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:

Código: Selecionar todos

 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Get como simular END, HOME, etc.

Mensagem por asimoes »

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 do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Get como simular END, HOME, etc.

Mensagem por Itamar M. Lins Jr. »

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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Get como simular END, HOME, etc.

Mensagem por asimoes »

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 do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Get como simular END, HOME, etc.

Mensagem por asimoes »

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 do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Get como simular END, HOME, etc.

Mensagem por asimoes »

https://developer.gnome.org/gtk3/stable ... t-position

Código: Selecionar todos

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 do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Get como simular END, HOME, etc.

Mensagem por asimoes »

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 do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Get como simular END, HOME, etc.

Mensagem por Itamar M. Lins Jr. »

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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Get como simular END, HOME, etc.

Mensagem por Itamar M. Lins Jr. »

Olá!
Cursor no fim

Código: Selecionar todos

...on click {||oName:SetFocus(),hwg_edit_SetPos( oName:Handle, len(alltrim(oName:value)) ),.T.}

ou Cursor no Inicio

Código: Selecionar todos

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

Funcionou blz!!!

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder