o enter nao funciona

Delphi

08/03/2004

galera sou nova no delphi e to fazendo um sistema
ja pesquisei sobre o enter
bom eu fiz uma funcao pra funcionar o emtre no meu from e nao ta dando certo arrumei a propriedade keypreview esta como true
e nos eventos onkeypress esta o seguinta codigo

if Key = #13 then
if not (ActiveControl is TDBGrid) then
begin
Key := 0;
Perform(WM_NEXTDLGCTL, 0, 0);
end
else
if (ActiveControl is TDBGrid) then
with TDBGrid(ActiveControl) do
if selectedindex < (fieldcount - 1) then
selectedindex := selectedindex + 1
else
selectedindex := 0;


COMO ESTA EM UM OUTRO SISTEMA MEU
ESSA FUNCAO ESTA TANTO NO MENU PRINCIPAL COMO NO FORM QUE ESTA SENDO CHAMADO E NAO TA FUNCIONANDO O ENTER NO SISTEMA
SE VCS PUDEREM ME AJUDAREM EU FICAREI MUITO GRATA
BEIJOSSCHNEIDER

[color=green:0e629a226f][b:0e629a226f]Tiitulo Editado, retirado ´URGENTISSIMO´[/b:0e629a226f][/color:0e629a226f]


Schneider

Schneider

Curtidas 0

Respostas

Nildo

Nildo

08/03/2004

Tente remover a linha

Key := #0;

e veja o resultado...


GOSTEI 0
Spider

Spider

08/03/2004

tente assim

coloque

keybd_event(VK_TAB, 0, 0, 0);

no lugar de

Perform(WM_NEXTDLGCTL, 0, 0);


GOSTEI 0
Schneider

Schneider

08/03/2004

Tente remover a linha Key := #0; e veja o resultado...






nao deu certo
continua na mesma


GOSTEI 0
Schneider

Schneider

08/03/2004

tente assim coloque keybd_event(VK_TAB, 0, 0, 0); no lugar de Perform(WM_NEXTDLGCTL, 0, 0);


tentei tbm e nao deu certo nao mudou nada


GOSTEI 0
Weber

Weber

08/03/2004

Não sei quanto ao DBGrid mas para o enter funcionar como TAB pulando de componente para componente basta colocar o KeyPreview=True no formulário.
No OnKeyDown do Formulário coloque
if Key = vk_RETURN then
Perform(WM_NEXTDLGCTL,0,0);


GOSTEI 0
Gandalf.nho

Gandalf.nho

08/03/2004

Vá no site [url]http://delphi.icm.edu.pl/[/url] e pegue o componente DosMove, que mapeia o ENTER como TAB


GOSTEI 0
Andrey

Andrey

08/03/2004

Se vc disse q já usa essa função normalmente em outro sistema e funciona, provavelmente o problema não deve estar nela, mas no jeito q vc a está utilizando. Ai fica mais dificil...tenta focar sua atenção nisso...

Certifique-se de q o link esteja no evento onkeypress do form(vá em events e dê um duplo clique)


GOSTEI 0
Schneider

Schneider

08/03/2004

Não sei quanto ao DBGrid mas para o enter funcionar como TAB pulando de componente para componente basta colocar o KeyPreview=True no formulário. No OnKeyDown do Formulário coloque if Key = vk_RETURN then Perform(WM_NEXTDLGCTL,0,0);


bom fis o q vc sugeriu mais nem passa por dentro dessa funcao quando abre o meu form tanto o principal quanto o que é chamado apos dele que deveria usar o enter
brigada


GOSTEI 0
Schneider

Schneider

08/03/2004

Se vc disse q já usa essa função normalmente em outro sistema e funciona, provavelmente o problema não deve estar nela, mas no jeito q vc a está utilizando. Ai fica mais dificil...tenta focar sua atenção nisso... Certifique-se de q o link esteja no evento onkeypress do form(vá em events e dê um duplo clique)



tbm ja fis isso aranquei a funcao dali ja e ja coloquei novamente
dei dois clicks no evento e tudo e nada da certo to pra ficar loka ja
beijos


GOSTEI 0
Paulo Trajano

Paulo Trajano

08/03/2004

Já que o problema é URGENTÍSSIMO, aqui no ClubeDelphi tem um pacote de componentes chamado MDComponents com o componente MDTabEnter.

http://www.clubedelphi.com.br/compo/index.asp

Nele tem uma propriedade chamada ´Classes Not Afected´ (salvo engano) que vc pode escolher as classes de componentes que não serão afetadas por ele, ou seja onde o ENTER vai funcionar como ENTER mesmo. Ah, e só basta colocar o componente no formulário e ajustar essa propriedade, não se esquecendo de copiar as DCU´S para a pasta onde está seu projeto.

Espero ter ajudado
Abraço


GOSTEI 0
Paulo Trajano

Paulo Trajano

08/03/2004

Desculpe, clique no link ´Diversos´ que vc vai achar


GOSTEI 0
Schneider

Schneider

08/03/2004

[quote:576c37d37d=´Paulo Trajano´]Desculpe, clique no link ´Diversos´ que vc vai achar[/quote:576c37d37d]


Paulo brigada mais é que nao gostaria de colocar componentes novos no meu sistema pois a firma onde trabalho nao concorta se é que vc me entende


beijos
brigada


GOSTEI 0
Paulo Trajano

Paulo Trajano

08/03/2004

...se é que vc me entende


hehe, entendo sim mas o que vale é a intenção :wink:


GOSTEI 0
Schneider

Schneider

08/03/2004

[quote:870a4f9944=´Paulo Trajano´]
...se é que vc me entende


hehe, entendo sim mas o que vale é a intenção :wink:[/quote:870a4f9944]

claro que sim brigada mesmo
beijos
:wink: :D


GOSTEI 0
Weber

Weber

08/03/2004

schneider, verifique se o KeyPreview está como True.
Você deverá colocar o ir acima em todos os seus formulários no OnKeyDown de cada um.

No meu está assim e funciona.


GOSTEI 0
Denis200

Denis200

08/03/2004

Caro colega nao sei se no dbgrid funciona

mas faço da seguinte forma

no form no evento onkeydow

digite a seguinte linha

if key= vk_return then
selectnext(sender as twincontrol,true,true);

e depois
selecione todos os componentes e mude a propriedade
onkeydow = formkeydow


GOSTEI 0
Nildo

Nildo

08/03/2004

O que acontece? Você da o ENTER e ele simplesmente não funciona?


GOSTEI 0
Nildo

Nildo

08/03/2004

O que acontece? Você da o ENTER e ele simplesmente não funciona? Tipo, nao muda de componente ou não acontece nada, nem mesmo o ENTER chega a ser processado?


GOSTEI 0
Schneider

Schneider

08/03/2004

O que acontece? Você da o ENTER e ele simplesmente não funciona? Tipo, nao muda de componente ou não acontece nada, nem mesmo o ENTER chega a ser processado?


nao o nao muda de compomente e nem passa pela funcao colocada la no onkeypress ou onkeydow


GOSTEI 0
Schneider

Schneider

08/03/2004

schneider, verifique se o KeyPreview está como True. Você deverá colocar o ir acima em todos os seus formulários no OnKeyDown de cada um. No meu está assim e funciona.

pois é no meu outro sistema tbm funciona a funcao que eu coloquei no onkeypress mais nesse aki agora nao tem jeito de funcionar e esta sim tudo como true


GOSTEI 0
Schneider

Schneider

08/03/2004

Caro colega nao sei se no dbgrid funciona mas faço da seguinte forma no form no evento onkeydow digite a seguinte linha if key= vk_return then selectnext(sender as twincontrol,true,true); e depois selecione todos os componentes e mude a propriedade onkeydow = formkeydow


denis no meu edit nao existe a propriedade onkeydow so o evendo onkeydow????????????????????


GOSTEI 0
Nildo

Nildo

08/03/2004

Verifique se existe a palavra: WM_KEYDOWN no seu projeto. Se existir verifique se a procedure que ela se encontra você não está cancelando se a tecla for #13


GOSTEI 0
Schneider

Schneider

08/03/2004

Verifique se existe a palavra: WM_KEYDOWN no seu projeto. Se existir verifique se a procedure que ela se encontra você não está cancelando se a tecla for #13


bom essa palavra nao existe no meu projeto


GOSTEI 0
Paulo Trajano

Paulo Trajano

08/03/2004

No seu formulário tem algum TMemo ou vc já alterou as propriedades DEFAULT de todos os botões?


GOSTEI 0
Schneider

Schneider

08/03/2004

[quote:4a96593770=´Paulo Trajano´]No seu formulário tem algum TMemo ou vc já alterou as propriedades DEFAULT de todos os botões?[/quote:4a96593770]
eu nao uso nenhum tMeno so edit um Tradiogrup, um tNotboock e um grid mais que é so pra mostrar as coisas nao fas mais nada nele e um Tgrupbox so isso


GOSTEI 0
Denis200

Denis200

08/03/2004

[size=18:89a307a9cc][/size:89a307a9cc]


Desculpe mas a propriedade é onkeydown e no dbgrid não funciona


GOSTEI 0
Paulo Trajano

Paulo Trajano

08/03/2004

Incrível, no meu tb dá tudo certo

[quote:874aad8e82=´nildo´]Verifique se existe a palavra: WM_KEYDOWN no seu projeto. Se existir verifique se a procedure que ela se encontra você não está cancelando se a tecla for #13


bom essa palavra nao existe no meu projeto[/quote:874aad8e82]

Tenta pesquisar ´13´ aí pra ver. Não esquece de pesquisar por ´Find in files´


GOSTEI 0
Schneider

Schneider

08/03/2004

[quote:07bd619519=´Paulo Trajano´]Incrível, no meu tb dá tudo certo

[quote:07bd619519=´nildo´]Verifique se existe a palavra: WM_KEYDOWN no seu projeto. Se existir verifique se a procedure que ela se encontra você não está cancelando se a tecla for #13


bom essa palavra nao existe no meu projeto[/quote:07bd619519]

Tenta pesquisar ´13´ aí pra ver. Não esquece de pesquisar por ´Find in files´[/quote:07bd619519]
pois é icrivel mesmo pois no meu outro sistema funciona tbm beleza e nesse outro aki naum tem jeito


GOSTEI 0
Denis200

Denis200

08/03/2004

me desculpe novamente é no evento


GOSTEI 0
Nildo

Nildo

08/03/2004

Procure por #13 ou Chr(13)
Você chegou a alterar alguma propriedade do Projeto? Se não, utilize o WinSight para debuggar as mensagens, você abre o seu programa, abre o WinSight (Menu Iniciar->Programas->Borland), ativa ele e tecle ENTER no seu sistema, verifique se amnesgaem WM_KEYDOWN é processada


GOSTEI 0
Schneider

Schneider

08/03/2004

Procure por #13 ou Chr(13) Você chegou a alterar alguma propriedade do Projeto? Se não, utilize o WinSight para debuggar as mensagens, você abre o seu programa, abre o WinSight (Menu Iniciar->Programas->Borland), ativa ele e tecle ENTER no seu sistema, verifique se amnesgaem WM_KEYDOWN é processada


bom so passa por dentro da funcao depois q chega no notbook que tenho no sistema e ainda nao passa por dentro de toda a funcao passa no if e cai fora


GOSTEI 0
Nildo

Nildo

08/03/2004

Já tentou o Debugger?


GOSTEI 0
Schneider

Schneider

08/03/2004

Já tentou o Debugger?

ja coloquei breakpont en todas a funcao que possa pensar e ja tentei de todas as formas ja apaguei tudo que possa ter de enter no meu form principal e no secundario e coloquei novamente e nada...
nada deu certo ate agora
nao sei mais o q fazer


GOSTEI 0
Schneider

Schneider

08/03/2004

galera ja achei o erro eu estava usando um bitbtn e o default dele tava como tru quando o kind dele estava como ok erra so mudar para true que iria funcinar
mais valeu pela ajuda de vcs fico muito grata por saber que se eu realmente precisar vcs vao estar aki pra me ajudar
beijos
ate a proxima


GOSTEI 0
Paulo Trajano

Paulo Trajano

08/03/2004

[quote:84864f2964=´Paulo Trajano´]...vc já alterou as propriedades DEFAULT de todos os botões?[/quote:84864f2964]

Às vzs o erro é tão simples que a gente ñ consegue achar!
Se precisar, estamos aí :wink:


GOSTEI 0
POSTAR