Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-07-2005
Rabata Rabata is offline
Miembro
 
Registrado: jul 2003
Posts: 167
Poder: 21
Rabata Va por buen camino
evento on keypress y componente dinamico

Hola.

Tengo un componente creado dinámicamente.

quiero que el evento OnKeyPress sea un procedimiento que ya he escrito

Lo he hecho con el evento onClick de la sgte manera:

MICHECKBOX.OnClick:=MiOnClick;

EL problema es con el Evento OnKeyPress, al cual le tengo que pasar los parámetros, y no se como hacerlo

MICHECKBOX.OnKeyPress:=MiOnKeyPress(....esto....);

pues la declaracion de MiOnKeyPress necesita el TObject, que supongo que será self o MICHECKBOX...supongo he dicho.

y el segundo parámetro es Key........?¿?¿?¿?¿?¿

Q HAGO¡¡¡¡¡¡

Gracias.
Responder Con Cita
  #2  
Antiguo 26-07-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Con solo hacer: MICHECKBOX.OnKeyPress := MiOnKeyPress ya tienes solucionado tu problema. Claro, la declaración del método MiOnKeyPress debe ser igual al evento deseado.

Los parámetros del métodos los asigna el mismo componente al momento de disparar el evento. Internamente hace algo como esto:
Código Delphi [-]
procedure TCheckBox.DoKeyPress(..);
begin
  //..
  if Assigned(FOnKeyPress) then
    FOnKeyPress(Self, ..)
end;


Saludos...
Responder Con Cita
  #3  
Antiguo 26-07-2005
Rabata Rabata is offline
Miembro
 
Registrado: jul 2003
Posts: 167
Poder: 21
Rabata Va por buen camino
el error q me da es not enough parameters


algo tengo q hacer mal.



De todas formas le he puesto esos eventos a un componente invisible y he metido el código q queria y si funciona...

aunq me he quedado con las ganas de saber en q me he equivocado.


gracias.
Responder Con Cita
  #4  
Antiguo 26-07-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Si pones parte del código que estás usando, específicamente el que te da el error, te podríamos ayudar mejor...
Responder Con Cita
  #5  
Antiguo 26-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Si lo que quieres es asignar a un componente un método para su evento "OnKeyPress" debes implentar en un objeto un procedimiento con los parámetros adecuados para responder a dicho evento:

Código Delphi [-]
   procedure TeclaPresionada(Sender: TObject; var Key: Char);
Por ejemplo, en el siguiente código se implementa un método con los parámetros adecuados dentro de un formulario y se asigna al evento "OnKeyPress" de dicho formulario el método en cuestión aprovechando el evento "OnCreate":

Código Delphi [-]
 unit UFormulario;
 
 interface
 
 uses
   Forms, SysUtils, Dialogs;
 
 type
   TfrmPrincipal = class(TForm)
     procedure FormCreate(Sender: TObject);
   private
     procedure TeclaPresionada(Sender: TObject; var Key: Char);
   end;
 
 var
   frmPrincipal: TfrmPrincipal;
 
 implementation
 
 {$R *.dfm}
 
 procedure TfrmPrincipal.FormCreate(Sender: TObject);
 begin
   OnKeyPress := TeclaPresionada;
 end;
 
 procedure TfrmPrincipal.TeclaPresionada(Sender: TObject; var Key: Char);
 resourcestring
   rsMsg = 'Se pulsó la tecla: %s';
 begin
   ShowMessage(Format(rsMsg, [Key]));
 end;
 
 end.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 22:01:20.


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