Array
(
)

OnExit Chamando OnKeyDown

Paulo
   - 26 dez 2005

Como chamar o evento OnKeyDown de dentro do OnExit?


Eixox
   - 26 dez 2005

fazer isso da seguinte forma:

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


Martins
   - 26 dez 2005


Citação:
Como chamar o evento OnKeyDown de dentro do OnExit?


Qual o objetivo disso?


Martins
   - 26 dez 2005

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

Crie uma procedure ex:
#Código


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


Coloque os códigos q sejam necessários

no Evento OnExit coloque assim:

#Código

Form1.OnKeyDown := Teste;


Valew!!!


Eixox
   - 26 dez 2005

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.


Martins
   - 26 dez 2005


Citação:
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!!!


Paulo
   - 26 dez 2005

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.


Martins
   - 26 dez 2005

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


Martins
   - 26 dez 2005


Citação:
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!!!


Osmanito
   - 06 out 2010

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.