Página 1 de 1

Get como simular END, HOME, etc.

Enviado: 01 Abr 2021 19:44
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.

Get como simular END, HOME, etc.

Enviado: 01 Abr 2021 19:50
por asimoes
Tenta:

hwg_Keyb_Event( VK_HOME )

WHEN {|| hwg_Keyb_Event( VK_HOME ) } ;

Get como simular END, HOME, etc.

Enviado: 01 Abr 2021 19:56
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.

Get como simular END, HOME, etc.

Enviado: 01 Abr 2021 22:07
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

Get como simular END, HOME, etc.

Enviado: 01 Abr 2021 22:13
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

Get como simular END, HOME, etc.

Enviado: 01 Abr 2021 22:18
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 ) );
}

Get como simular END, HOME, etc.

Enviado: 01 Abr 2021 22:20
por asimoes
Nesse caso usa o handle do edit para posicionar

Get como simular END, HOME, etc.

Enviado: 01 Abr 2021 22:30
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.

Get como simular END, HOME, etc.

Enviado: 01 Abr 2021 22:42
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.