Tirar o ENTER do Buffer
Colegas,
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
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
Curtidas 0
Respostas
Brnz
23/10/2003
Bom... esse erro tb me surpreende... mais... vambora...
Tente
achu q funfa...
Vlws...
Brnz...
Tente
If Key=VK_RETURN then begin key:=#0; perfor...(blablabla); end;
achu q funfa...
Vlws...
Brnz...
GOSTEI 0
Cardoso
23/10/2003
Ola colega,
Obrigado pela dica, porém náo deu certo.
Valmir
Obrigado pela dica, porém náo deu certo.
Valmir
GOSTEI 0
Adilsond
23/10/2003
Voce deve fazer, conforme o brnz informou, mas no evento OnKeyPress.
Só mude o VK_RETURN por #13
Só mude o VK_RETURN por #13
GOSTEI 0
Cardoso
23/10/2003
Colegas,
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
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