Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Ejecutar un OnKeyPress (https://www.clubdelphi.com/foros/showthread.php?t=25938)

sierraja 08-10-2005 03:01:59

Ejecutar un OnKeyPress
 
Tengo un edit16 en mi aplicación y tiene un evento OnKeyPress, el cual tiene un procedimiento escrito, ok, ahora desde cualquier parte de la aplicación quiero ejecutar ese evento OnkeyPress y la pregunta es: ¿Cómo lo hago?

MasterXP 08-10-2005 03:44:13

ejemplo si tienes este procedimiento en el Boton 1:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;

si quieres llamar eso desde el boton 2:

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
Button2Click(Sender);
end;

Saludo.

sierraja 08-10-2005 04:02:54

Eso es correcto MasterXP, tu procedimiento funciona muy bien con el evento OnClick, pero mi pregunta es: tengo el evento definido en un TEdit llamado OnKeyPress y tiene su procedimiento. Ahora quiero llamar ese evento desde un boton diferente. Gracias por su atención.

Héctor Randolph 08-10-2005 08:16:35

Hola a todos!

Sólo tienes que adaptar la respuesta a tu caso en particular.

Por ejemplo si tienes código en el evento OnkeyPress del TEdit, llamalo de esta forma desde el evento Onclick de otro botón o en cualquier parte del código.

Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  ShowMessageFmt('Se ha presionado la tecla %s con el código %d',[Key,Ord(Key)]);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Tecla: Char;
begin
  Tecla:=#65; // Caracter que representa la letra A en ASCII
  Edit1KeyPress(Sender,Tecla); //Envias como parámetro Tecla al evento OnKeyPress
end;

Observa que en el evento OnKeyPress el parámetro Key se pasa por referencia por esta razón no puedes mandar una constante tienes que enviar una variable.

Espero que sea útil.

vtdeleon 08-10-2005 13:52:33

Saludos

MasterXp, El 2do procedimiento da error, ya que lo llamas a si mismo y este ya se encuentra destruido.

sierraja 08-10-2005 16:23:04

Efectivamente Hector su sugerencia la probé y resultó efectiva. Muchas Gracias:D


La franja horaria es GMT +2. Ahora son las 19:05:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi