Página 1 de 1

Tecla INS não funciona

Enviado: 27 Mai 2013 15:47
por Vlademiro
Opa, Pessoal

Mais uma vez pedindo a ajuda de vcs :D

Faz um tempo que não crio nada em clipper/harbour, agora estou criando um sistema (linux/console). Ocorre que a tecla INS não funciona nos formulários. Não sei se é um SET ou uma falha minha.
O operador quer corrigir um erro e acaba apagando os dados.

Alguém já passou por isso ?

Tecla INS não funciona

Enviado: 27 Mai 2013 16:38
por Pablo César
Tente isto:

#include "setcurs.ch"

..//..


SETCURSOR(IF(SET( _SET_INSERT, !SET(_SET_INSERT) ), 1, 3 ))

ou

KSETINS(.T.) // da CT.LIB

Tecla INS não funciona

Enviado: 27 Mai 2013 20:50
por Vlademiro
Tentei a primeira opção e funcionou !!

SETCURSOR(IF(SET( _SET_INSERT, !SET(_SET_INSERT) ), 1, 3 ))


Porém ficou eternamente INS ativado.

Vou testar assim mesmo, acho que vai ficar até melhor.

Muito obrigado :xau

Tecla INS não funciona

Enviado: 27 Mai 2013 23:20
por alxsts
Olá!

O exemplo postado anteriormente define o formato do cursor (underline ou bloco), dependendo do estado da tecla INS.

Para conseguir o resultado que você precisa nos Gets ou MemoEdits de suas telas, o melhor é utilizar a função ReadInsert():

Código: Selecionar todos

 Examples

     .  This example sets the insert mode prior to entering MEMOEDIT()
        and resets the mode when MEMOEDIT() terminates:

        USE Sales NEW

        // Turn on insert mode
        lInsMode = READINSERT(.T.)
        Sales->Notes := MEMOEDIT(Sales->Notes)
        //
        // Restore previous insert mode
        READINSERT(lInsMode)

Tecla INS não funciona

Enviado: 27 Mai 2013 23:47
por Pablo César
alxsts escreveu:O exemplo postado anteriormente define o formato do cursor (underline ou bloco), dependendo do estado da tecla INS.
Tem razão, Alexandre. Falha na minha primeira indicação, obrigado por esclarecer. Mas o KSETINS(.T.) // da CT.LIB irá funcionar !

Tecla INS não funciona

Enviado: 28 Mai 2013 00:01
por alxsts
Olá!

Esta função da CT.Lib eu não conheço.

No caso deste tópico, creio que o melhor é usar as duas indicações:
Examples

. This example sets the insert mode prior to entering MEMOEDIT()
and resets the mode when MEMOEDIT() terminates:

Código: Selecionar todos

#include "setcurs.ch"

    USE Sales NEW

    // Turn on insert mode
    lInsMode = READINSERT(.T.)

    // mostra o cursor como bloco
    nSavCursor := SetCursor( SC_INSERT )

    Sales->Notes := MEMOEDIT(Sales->Notes)
    //
    // Restore previous insert mode
    READINSERT(lInsMode)

    // Restaura o formato do cursor
    SetCursor( nSavCursor )
Editado para colocar a tag Code