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 10-06-2003
craven craven is offline
Miembro
 
Registrado: may 2003
Posts: 78
Poder: 21
craven Va por buen camino
Aun tengo dudas....

Hola amigos. Agradezco vuestra ayuda, pero aún hay algo que no funciona en todo esto... A ver. Imaginad el siguiente código:

type
TMiEvento = procedure (Sender: TObject; var value : Integer) ;

TMiClase = class
private
valor : Integer ;
event : TMiEvento ;

procedure SetValor (vlr : Integer) ;
public
property OnMyEvent: TMiEvento read event write event ;
property Asignar: Integer read valor write SetValor ;
end ;

TForm1 = class(TForm)

Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure mioOnEvento (Sender: TObject; var value : Integer) ;
end ;

var
Form1: TForm1;
mio : TMiClase ;

implementation

procedure TMiClase.SetValor (vlr : Integer) ;
begin
valor := vlr ;
if assigned (event) then event(self,vlr) ;
end ;

procedure TForm1.Button1Click(Sender: TObject);
begin
mio.Asignar := 4 ;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
mio := TMiClase.Create ;
mio.OnMyEvent := mioOnEvento ;
end;


¿Cómo capturo desde el Form1 el evento que lanza MICLASE? Si lo hago como sigue, no funciona...

procedure TForm1.mioOnEvento (Sender: TObject; var value : Integer) ;
begin
ShowMessage('El valor es = ' + intToStr(value)) ;
end ;

Gracias de antemano. Un saludo a todos.
__________________
craven
Responder Con Cita
  #2  
Antiguo 10-06-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Posteado originalmente por craven
¿Cómo capturo desde el Form1 el evento que lanza MICLASE? Si lo hago como sigue, no funciona...
¿Y cómo es que no funciona? ¿Te manda un error? ¿No da el valor esperado? ¿Qué es lo que pasa?

Lo más recomendable en estos casos es poner un "breakpoint" donde asignas el valor e ir rastreando el código con F7. Siendo un código bastante corto no deberías tener problemas para encontrar dónde está el error.

De cualquier forma no podemos adivinar el por qué falla. ¿Qué tal si nos das una ayudadita?

// Saludos
Responder Con Cita
  #3  
Antiguo 10-06-2003
Bacterion Bacterion is offline
Miembro
 
Registrado: may 2003
Posts: 91
Poder: 21
Bacterion Va por buen camino
Primero, que
TMiEvento = procedure (Sender: TObject; var value : Integer) of object;

(fijate en el of bject). Con of Object defines que es un puntero a método de objeto y no a un procedimiento normal (que no cuelga de un objeto).

Por lo demás, he copiado tu código y en el click del botón me sale un ventanuco diciendome el valor asignado.
Responder Con Cita
  #4  
Antiguo 11-06-2003
craven craven is offline
Miembro
 
Registrado: may 2003
Posts: 78
Poder: 21
craven Va por buen camino
Gracias a ambos. Lo que pasaba era exactamente que faltaba 'of object' al final de la declaración del evento. Un saludo.
__________________
craven
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 19:00:02.


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