OnExit Chamando OnKeyDown

26/12/2005

Como chamar o evento OnKeyDown de dentro do OnExit?


Paulo

Respostas

26/12/2005

Eixox

fazer isso da seguinte forma:

onExit....
Controle.onKeyDown(Sender);


Responder Citar

26/12/2005

Martins

Como chamar o evento OnKeyDown de dentro do OnExit?


Qual o objetivo disso?


Responder Citar

26/12/2005

Martins

Teste dessa forma, talvez exista outra menos trabalhosa ou mais correta, eu não sei, mas assim deve funcionar.

Crie uma procedure ex:
procedure Teste( Sender: TObject; var Key: Word; Shift: TShiftState );


Coloque os códigos q sejam necessários

no Evento OnExit coloque assim:

  Form1.OnKeyDown := Teste;


Valew!!!


Responder Citar

26/12/2005

Eixox

Desculpem-me, o código que enviei não funca.

Perdão a todos pela falha nossa.

obrigado pela compreensão e peço desculpas especialmente ao amigo Paulo pelo qual não ajudei.


Responder Citar

26/12/2005

Martins

Desculpem-me, o código que enviei não funca. Perdão a todos pela falha nossa. obrigado pela compreensão e peço desculpas especialmente ao amigo Paulo pelo qual não ajudei.


Acontece, porém o simples fato de vc ter tentado ajudar já é muito, valew!!!


Responder Citar

26/12/2005

Paulo

eixox, a tentativa de ajudar já é uma ajuda. Aqui comigo, sem problemas, parceiro. Valeu mesmo! O Objetivo disso, é que eu tenho uma rotina no OnKeyDown que funciona, mas só qdo a tecla enter é pressionada. Acontece que tem uma usuária, que ela sai do edit, às vezes com o mouse, e o evento não é disparado, e depois me liga para dizer que está dando erro. Preciso evitar isso. Poderia encher de botões ao invés de tratar no evento do componente, mas se for possível, usarei o OnExit q a parada será resolvida, a menos que os colegas tenham outra solução que eu não consigo enxergar.


Responder Citar

26/12/2005

Martins

ConsultE a função keybd_event( VK_TELCA, 0, 0, 0 )


Responder Citar

26/12/2005

Martins

ConsultE a função keybd_event( VK_TELCA, 0, 0, 0 )


Corrigindo...

Consulte a função da API do Windows Keybd_Event( VK_Tecla, 0, 0, 0 )


Boa Sorte!!!


Responder Citar

06/10/2010

Osmanito

Esse post é antigo, mas passei por aqui e vendo a dificuldade anexo a este a solução.
Veja aí e valeu colegas fuçadores de bits.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key=vk_return then ShowMessage('Teste');
end;

procedure TForm1.Button1Click(Sender: TObject);
var Key: word;
    Shift: TShiftState;
begin
   Key:=vk_return;
   Shift:=[ssShift];
   FormKeyDown(Button1, Key, Shift);
end;

end.
Responder Citar