Evento OnKeyPress

Delphi

20/08/2009

pessoal trabalho com delphi e uso firebird, gostaria de saber como poderia executar uma pesquisa por codigo pela tecla f2 e por nome f3, so que nau sei como começar! poderiam me ajudar?!

desde ja obrigado


Thiagoangra2

Thiagoangra2

Curtidas 0

Respostas

André Rodrigues

André Rodrigues

20/08/2009

detalhe melhor esta questão da consulta usando as teclas F2 e F3 e qual o meio de conexão você está usando, DbExpress, IBX, etc.


GOSTEI 0
Thiagoangra2

Thiagoangra2

20/08/2009

amigao eu uso dbexpress


GOSTEI 0
Thiagoangra2

Thiagoangra2

20/08/2009

amigao eu uso dbexpress


GOSTEI 0
André Rodrigues

André Rodrigues

20/08/2009

na questão das teclas basta você habilitar a prorpiedade KeyPreview do form para True e no evento OnKeyDown do form tratar qual tecla foi pressionada e dai é só incluir sua função para realizar a pesquisa, exemplo:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = VK_F2) then
    //Função para pesquisar por código

  if (Key = VK_F3) then
    //Função para pesquisar por nome
end;



GOSTEI 0
Thiagoangra2

Thiagoangra2

20/08/2009

amigo nau aconteceu nada! o keypreview ja está true e está no evento do form! eu tmb quero usar esse evento para abrir um outro formulario, fiz o msm procedimento mais da um erro

´cannot make visible a window modal´.

oq que pode ser isso! será que é o showmodal que nau está aceitando?
abraços :?


GOSTEI 0
Junior Miranda

Junior Miranda

20/08/2009

[quote=´thiagoangra2´]

´cannot make visible a window modal´.
oq que pode ser isso! será que é o showmodal que nau está aceitando?
abraços :?


Vc deve estar atribuindo o foco a um objeto no Oncreate do form. Coloque no OnShow ou OnActivate.

[]´s


GOSTEI 0
Thiagoangra2

Thiagoangra2

20/08/2009

nau intendi, na verdade no meu form nau tem nada ou nenhum objeto com focus!


GOSTEI 0
Dicasecodigosdelphi

Dicasecodigosdelphi

20/08/2009

esse erro é porque voce esta chamando uma janela assim form1.showmodal e esta proproedade requer que a propriedade visible = false


GOSTEI 0
Martins

Martins

20/08/2009

na questão das teclas basta você habilitar a prorpiedade KeyPreview do form para True e no evento OnKeyDown do form tratar qual tecla foi pressionada e dai é só incluir sua função para realizar a pesquisa, exemplo:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = VK_F2) then
    //Função para pesquisar por código

  if (Key = VK_F3) then
    //Função para pesquisar por nome
end;


O Código tá certinho, não sei pr não funcionou, reveja seu projeto.


GOSTEI 0
Rweberich

Rweberich

20/08/2009

Ola Thiago,

Muito facil de resolver:

1º - Va nas propriedades do formulario e veja se esta [b:78063c8ce1]True [/b:78063c8ce1] a propriedade [b:78063c8ce1]KeyPreview[/b:78063c8ce1]

2º - No evento ´OnKeyDown´ do formulario coloque o seguinte:

if ( Chr(Key) = #113) then //F2
begin
//funcao a ser executada
end;
if ( Chr(Key) = 115) then //F4
begin
//funcao a ser executada
end;

Abraco.


GOSTEI 0
Thiagoangra2

Thiagoangra2

20/08/2009

Ola Thiago, Muito facil de resolver: 1º - Va nas propriedades do formulario e veja se esta [b:cc8009b2ef]True [/b:cc8009b2ef] a propriedade [b:cc8009b2ef]KeyPreview[/b:cc8009b2ef] 2º - No evento ´OnKeyDown´ do formulario coloque o seguinte: if ( Chr(Key) = #113) then //F2 begin //funcao a ser executada end; if ( Chr(Key) = 115) then //F4 begin //funcao a ser executada end; Abraco.




amigo obrigado, mais infelizmente da o seguinte error

´Cannot make a visible windows modal´

o que poderia ser? fiz tudo como me disse.


GOSTEI 0
Martins

Martins

20/08/2009

[quote:7ef714c977=´rweberich´]Ola Thiago, Muito facil de resolver: 1º - Va nas propriedades do formulario e veja se esta [b:7ef714c977]True [/b:7ef714c977] a propriedade [b:7ef714c977]KeyPreview[/b:7ef714c977] 2º - No evento ´OnKeyDown´ do formulario coloque o seguinte: if ( Chr(Key) = #113) then //F2 begin //funcao a ser executada end; if ( Chr(Key) = 115) then //F4 begin //funcao a ser executada end; Abraco.




amigo obrigado, mais infelizmente da o seguinte error

´Cannot make a visible windows modal´

o que poderia ser? fiz tudo como me disse.[/quote:7ef714c977]

Seguinte, para podermos lhe ajudar de uma forma mais objetiva, vc deve postar o seu código, assim poderemos te ajudar.

Boa sorte e bons códigos.


GOSTEI 0
Martins

Martins

20/08/2009

[quote:e66245e49a=´rweberich´]Ola Thiago, Muito facil de resolver: 1º - Va nas propriedades do formulario e veja se esta [b:e66245e49a]True [/b:e66245e49a] a propriedade [b:e66245e49a]KeyPreview[/b:e66245e49a] 2º - No evento ´OnKeyDown´ do formulario coloque o seguinte: if ( Chr(Key) = #113) then //F2 begin //funcao a ser executada end; if ( Chr(Key) = 115) then //F4 begin //funcao a ser executada end; Abraco.




amigo obrigado, mais infelizmente da o seguinte error

´Cannot make a visible windows modal´

o que poderia ser? fiz tudo como me disse.[/quote:e66245e49a]

Seguinte, para podermos lhe ajudar de uma forma mais objetiva, vc deve postar o seu código, assim poderemos te ajudar.

Boa sorte e bons códigos.


GOSTEI 0
Martins

Martins

20/08/2009

[quote:10ad239d61=´rweberich´]Ola Thiago, Muito facil de resolver: 1º - Va nas propriedades do formulario e veja se esta [b:10ad239d61]True [/b:10ad239d61] a propriedade [b:10ad239d61]KeyPreview[/b:10ad239d61] 2º - No evento ´OnKeyDown´ do formulario coloque o seguinte: if ( Chr(Key) = #113) then //F2 begin //funcao a ser executada end; if ( Chr(Key) = 115) then //F4 begin //funcao a ser executada end; Abraco.




amigo obrigado, mais infelizmente da o seguinte error

´Cannot make a visible windows modal´

o que poderia ser? fiz tudo como me disse.[/quote:10ad239d61]

Seguinte, para podermos lhe ajudar de uma forma mais objetiva, vc deve postar o seu código, assim poderemos te ajudar.

Boa sorte e bons códigos.


GOSTEI 0
Thiagoangra2

Thiagoangra2

20/08/2009

[quote=´thiagoangra2´][quote:a7446567b6=´rweberich´]Ola Thiago, Muito facil de resolver: 1º - Va nas propriedades do formulario e veja se esta [b:a7446567b6]True [/b:a7446567b6] a propriedade [b:a7446567b6]KeyPreview[/b:a7446567b6] 2º - No evento ´OnKeyDown´ do formulario coloque o seguinte: if ( Chr(Key) = #113) then //F2 begin //funcao a ser executada end; if ( Chr(Key) = 115) then //F4 begin //funcao a ser executada Seguinte, para podermos lhe ajudar de uma forma mais objetiva, vc deve postar o seu código, assim poderemos te ajudar. Boa sorte e bons códigos.







procedure Tfrmcadest.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ( Chr(Key) = 115) then
begin
frmcadest.Showmodal;
end;
end;

end;


GOSTEI 0
Rweberich

Rweberich

20/08/2009

[quote=´thiagoangra2
amigo obrigado, mais infelizmente da o seguinte error

´Cannot make a visible windows modal´

o que poderia ser? fiz tudo como me disse.


Muito simples de resolver esse erro:
Va nas propriedades do seu formulario em questao e altere a propriedade ´[b:a07683994b]Visible[/b:a07683994b]´ para [b:a07683994b]False[/b:a07683994b].

Abraco.


GOSTEI 0
Rweberich

Rweberich

20/08/2009

[quote=´thiagoangra2]
amigo obrigado, mais infelizmente da o seguinte error

´Cannot make a visible windows modal´

o que poderia ser? fiz tudo como me disse.


Muito simples de resolver esse erro:
Va nas propriedades do seu formulario em questao e altere a propriedade ´Visible´ para False.

Abraco.


GOSTEI 0
Djfabioninja

Djfabioninja

20/08/2009

Olá rweberich!
A rotina de tratamento de teclas está correta! Porém, o erro que voce obtém ´cannot make a visible window modal´ quer dizer ´não posso exibir uma tela que já está visivel!´ no seu código:
-------------------------------------------------------
procedure TFRMCADEST.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ( Chr(Key) = #115) then
begin
FRMCADEST.Showmodal;
end;
end;

end;
------------------------------------------
voce está no formulario FRMCADEST, e quando se pressiona F2, voce manda o programa exibir via showmodal o proprio formulario FRMCADEST. Daí o erro! reveja o nome dos forms!

Espero ter ajudado.


GOSTEI 0
POSTAR