Clipper On Line • Ver Tópico - INSERT / SET INSERT

INSERT / SET INSERT

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

Moderador: Moderadores

 

INSERT / SET INSERT

Mensagempor Shark » 26 Jun 2018 05:40

Então pessoal... Alguns conhecimentos se perdem ao longo dos anos e creio que este caso seja um deles:

Gostaria de inverter o padrão de entrada do INSERT no meu sistema para deixá-lo como o padrão de GET dos programas atuais mais modernos.

Em um GET, quero que o cursor permaneça em seus estado normal "fininho", mas, que a digitação seja feita com INSERT (empurrando os caracteres já existentes) num GET.

Quando apertar o INSERT, o cursor fica "grandão" como de costume, porém ao digitar os caracteres vão sendo substituídos no GET.

Quem se lembra como se faz isso? Eu já matutei e não me recordo.

Agradeço antecipadamente a quem puder ajudar.
Shark
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 28
Data de registro: 25 Set 2017 21:42
Cidade/Estado: Brasília - DF
Curtiu: 5 vezes
Mens.Curtidas: 3 vezes

INSERT / SET INSERT

Mensagempor Jairo Maia » 26 Jun 2018 11:54

Olá Shark,

Coloque o seguinte em sua função MAIN():
// coloca em modo de inserção por padrão...
READINSERT( .T. )

// muda tamanho do cursor quando no modo de SOBREPOSIÇÃO
SETKEY(K_INS,{||IF(READINSERT(),SETCURSOR(3),SETCURSOR(1)),READINSERT(!READINSERT())})
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

INSERT / SET INSERT

Mensagempor Kapiaba » 26 Jun 2018 15:12

Uma idéia,

#INCLUDE "FIVEWIN.CH"

FUNCTION MAIN()

   LOCAL ODLG
   LOCAL OGET1, OGET2, OGET3, OGET4
   LOCAL CVAR1, CVAR2, CVAR3, CVAR4
   LOCAL LACTIVE := .F.
   
   CVAR1 := 0
   CVAR2 := 0
   CVAR3 := 0
   CVAR4 := 0

   READINSERT( .F. )
   
   DEFINE DIALOG ODLG TITLE "FROM CODE" PIXEL SIZE 300,300

   @ 10,10 GET OGET1 VAR CVAR1 BITMAP "..\BITMAPS\ON.BMP" ;
      ACTION( LIGA_INSERE_GET1() ) OF ODLG PIXEL SIZE 60,12

   OGET1:CTOOLTIP := OEMTOANSI( "CLICK NA BITMAP: LIGA/DESLIGA O INSERT" )
   OGET1:LBTNTRANSPARENT := .T.       // TRANSPARENT BUTTON

   @ 40,10 GET OGET2 VAR CVAR2 BITMAP "..\BITMAPS\ON.BMP" ACTION( MSGINFO( "WITHOUT TRANSPARENT" ) ) OF ODLG PIXEL SIZE 60,12

   @ 70,10 GET OGET3 VAR CVAR3 BITMAP "..\BITMAPS\CHKYES.BMP" ACTION( MSGINFO( "WITH ADJUST-TRANSPARENT" ) ) OF ODLG PIXEL SIZE 120,12

   OGET3:DISABLE()
   OGET3:LBTNTRANSPARENT := .T.       // TRANSPARENT BUTTON GET OGET3
   OGET3:LADJUSTBTN      := .T.       // BUTTON GET ADJUST WITDH OGET3
   OGET3:LDISCOLORS      := .F.       // DEACTIVE DISABLE COLOR
   OGET3:NCLRTEXTDIS     := CLR_WHITE // COLOR TEXT DISABLE STATUS
   OGET3:NCLRPANEDIS     := CLR_BLUE  // COLOR PANE DISABLE STATUS

   @ 100,10 GET OGET4 VAR CVAR4 BITMAP "..\BITMAPS\CHKYES.BMP" ;
      ACTION( IF( LACTIVE,OGET3:DISABLE(),OGET3:ENABLE()), LACTIVE:= !LACTIVE, ODLG:UPDATE() ) OF ODLG PIXEL SIZE 120,12
   
   OGET4:LADJUSTBTN      := .T.
   
   ACTIVATE DIALOG ODLG CENTERED ;

   SET( _SET_INSERT, ! SET( _SET_INSERT ) )

RETURN NIL

FUNCTION LIGA_INSERE_GET1()

   SET( _SET_INSERT, ! SET( _SET_INSERT ) )

RETURN( .T. )
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

INSERT / SET INSERT

Mensagempor Shark » 27 Jun 2018 18:50

Ambas as soluções acima são interessantes e funcionais. Entretanto, eu gostaria que o cursor ficasse normal com READINSERT( .T. ) e ficasse maior com READINSERT(.F.) que é o padrão de entrada dos programas mais modernos.

Isso é possível?

Nos testes que fiz, quando o INSERT é ligado o cursor assume a forma de inserção automaticamente ( setcursor(3) ) e mesmo chamando a função setcursor(1) o cursor não muda.
Shark
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 28
Data de registro: 25 Set 2017 21:42
Cidade/Estado: Brasília - DF
Curtiu: 5 vezes
Mens.Curtidas: 3 vezes

INSERT / SET INSERT

Mensagempor Shark » 27 Jun 2018 19:04

Como utilizo fivewin, vou alterar aqui a classe TGET pra fazer o que preciso mas lembro que no passado, em clipper, eu fazia isso facilmente. Porém não me recordo como. rsrsrsrsrs...

Por hora agradeço a contribuição dos nobres colegas.

Deixar aqui o trecho do código da classe TGET do fivewin que alterei para conseguir o resultado dsejado. Talvez sirva de ajuda para algum visitante deste post futuramente.

SharkAbraços!

  if ::oGet:Type == "N" .and. ;
              ( Chr( nKey ) == "." .or. Chr( nKey ) == "," )
              if ::oGet:Clear()
              #ifndef __XHARBOUR__
                 ::oGet:DelEnd()
              #endif
              endif
              ::oGet:ToDecPos()
           else
              if Set( _SET_INSERT )                     //
                 ::oGet:Overstrike( Chr( nKey ) )  //
              else                                              // by shark
                 ::oGet:Insert( Chr( nKey ) )        //
              end                                              //
           endif
Shark
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 28
Data de registro: 25 Set 2017 21:42
Cidade/Estado: Brasília - DF
Curtiu: 5 vezes
Mens.Curtidas: 3 vezes

INSERT / SET INSERT

Mensagempor Jairo Maia » 28 Jun 2018 11:39

Olá Shark,

Shark escreveu:em clipper, eu fazia isso facilmente. Porém não me recordo como.
Que bom que já resolveu, isso que é importante, mas apenas para registro:

Uso da forma que passei acima desde o Clipper, e manteve quando migrei para Harbour. O sistema inicia em modo INSERÇÃO e com o cursor "underline", se pressiona a tecla INSERT, o cursor fica cheio na vertical e com sobreposição dos caracteres. Deveria ter funcionado, mas importante que já resolveu.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 8 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