Efeito digitação e seleção em TEdit.

Delphi

14/11/2008

Olá.

Como faço pra simular um efito de digitação no TEdit?
Exemplo: Tenho uma variavel tipo string:

variável:=´Bom dia garotada!´
Edit1.text:=Variavel //mas quero que apareça como se estivesse sendo digitado, letra por letra.

Outra dúvida: Quando dbclicar em ´Bom´ ou em ´dia´, quero que seja selecionado ´Bom dia´, e não somente ´bom´, ou somente ´dia´.

Alguem ajuda? Obrigado.


Abelha

Abelha

Curtidas 0

Respostas

Abelha

Abelha

14/11/2008

sobe


GOSTEI 0
Wdrocha

Wdrocha

14/11/2008

Boa tarde....vou t dar um pequeno exemplo de como enviar letras para o edit q vc quer...não entrarei em mts detalhes....o resto é com vc...


Vc pod fazer um for....Assim...

For I := 0 To Length (Variável) - 1 Do
   
    KeyBdEvent (VkKeyScan(Variavel[I]), 0, KEYEVENTF_EXTENDEDKEY, 0);
    KeyBdEvent (VkKeyScan(Variavel[I]), 0, KEYEVENTF_EXTENDEDKEY Or  KEYEVENTF_KEYUP, 0);


O q este código faz???

ele envia letras para o buffer do teclado....conforme o layout do seu teclado...

por isso eu disse q o resto vc vai ter q procurar...por exemplo...se o seu teclado for Internacional....não tem o Cedilha....logo qdo uma letra for cedilha....ele não vai encontrar e enviar outra....

mas isso...é tratável...

vc pod emular um outro layout d teclado....

Outro dia...eu precisei disso...e criei uma matriz com o número da letra no mapa de caracteres do Windows em uma linha...e na outra linha...eu coloquei a letra correspondente....por exemplo o número do Cedilha....e emulava Alt + o número q estava na matriz....q seria o número do Cedilha para mostrar na tela esta letra...

qdo eu precisava de qualquer outra letra....

eu apenas buscava na minha matriz....

Enfim....existem N maneiras....


esse é o começo...


espero ter ajudado...


GOSTEI 0
Wdrocha

Wdrocha

14/11/2008

Já ia esquecendo....

dentro do laço For....

coloca um begin e End...q eu esqueci e tbm....

para q mostre letra a letra...

usa o Sleep (100), por exemplo....ele vai segurar o laço por um tempinhow antes q ele passe para a outra volta....


espero ter ajudado.....flw


GOSTEI 0
Abelha

Abelha

14/11/2008

Obrigado colega, mas na hora de compilar deu erro:

[i:1567718eaa][Error] Undeclared identifier: ´KeyBdEvent´[/i:1567718eaa]

Esse KeyBdEvent tem que ser daclarado?


GOSTEI 0
Wdrocha

Wdrocha

14/11/2008

Boa noite....desculpa a demora em responder...


só agora q eu vi sua resposta...


Desculpa colega...


mas é KeyBd_Event.....tah na unit Windows.pas...


espero q ajude vc..

qualquer coisa....diz aew..

Bom fds..


Flw


GOSTEI 0
POSTAR