Tecla INS não funciona

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Tecla INS não funciona

Mensagem 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 ?
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Tecla INS não funciona

Mensagem 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
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Tecla INS não funciona

Mensagem 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
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Tecla INS não funciona

Mensagem 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)
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Tecla INS não funciona

Mensagem 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 !
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Tecla INS não funciona

Mensagem 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
[]´s
Alexandre Santos (AlxSts)
Responder