Fórum Tirar o ENTER do Buffer #190454
23/10/2003
0
Tenho num FORM (que está com a propriedade
KeyPreview=TRUE, para facilitar o Enter no lugar
do Tab dentros dos DataAwares), um componente
DBDATEEDIT do componente RX.
Este é o último DataAware antes do botão GRAVAR,
que aliás, é um BitButton.
Em todos os DataWares(Dbedits) do form, no evento
OnKeyDown tenho a seguinte instrução:
if key=VK_RETURN then perform(WM_NEXTDLGCLT,0,0)
Isto faz com que ao se teclear ENTER(RETURN) o cursor
pule para o próximo objeto sem precisarmos teclar o
rejeitado TAB.
Isto funciona direitinho com todos os DataWares, porém
com este TDBDATEEDIT do pacote RX, o cursor até
pula para o próximo, porém ele vai com o RETURN
no buffer e aperta (clicka) automaticamente no próximo
objeto, que no meu caso é o botão GRAVAR, e grava
o registro sem esperar por minha decisão.
Há saídas para isto?
Eu querira suprimir este RETURN que vai na frente
do cursor.
Valmir
Cardoso
Curtir tópico
+ 0Posts
23/10/2003
Brnz
Tente
If Key=VK_RETURN then begin key:=#0; perfor...(blablabla); end;
achu q funfa...
Vlws...
Brnz...
Gostei + 0
23/10/2003
Cardoso
Obrigado pela dica, porém náo deu certo.
Valmir
Gostei + 0
24/10/2003
Adilsond
Só mude o VK_RETURN por #13
Gostei + 0
24/10/2003
Cardoso
Tentei como vcs estão dizendo, porém não deu certo.
Então parti para uma saída nada convencional.
Coloquei um botãzinho ao lado do objeto tdbdateedit.
Iniciei ele VISIBLE:=FALSE
Quando o tdbdateedit perceber que foi teclado ENTER
(pelo ONKEYDOWN ou ONKEYPRESS), então torno o
botãzinho VISIBLE:=TRUE.
No ONEXIT do TDBDATEEDIT, coloco o botãozinho
novamente para VISIBLE:=FALSE.
Pronto, é como o botãozinho estivesse alí, só para
levar a primeira pancada. Como nele não tem evento
algum atrelado, então o cursor bate nele e passa
automaticamente para o verdadeiro botão (GRAVAR)
que é o que eu queria.
Que feio né???
OFF-TOPIC
Ei Adilson! Sou vizinho teu, aqui de Itajaí. Abraços!
Valmir
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)