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 06-12-2005
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
En efecto, intentaré comprenderlo y escribiré los resultados.

Muchísimas gracias
__________________
:)
Responder Con Cita
  #2  
Antiguo 06-12-2005
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Pues... error

Código:
[Error] scEscipion.pas(74): Published field 'AlRecibir' not a class nor interface type
Código Delphi [-]
type
  // *** Clase para pasar el evento
  TEventoRecibir = procedure (ASender :TObject; var ACadena :string);
type
  // *** Clase TEscipion
  TEscipion = Class(TObject)
  (...)
     // *** Eventos
    FAlRecibir : TEventoRecibir;
    procedure PasarRecibido(var Cadena :string);

  private
  (...)
    procedure Recibir;

  public
  (...)
   
  published
    AlRecibir :TEventoRecibir
      read FAlRecibir; //¡Ojo! Aquí recibo el error
      write FAlRecibir;
end;
__________________
:)
Responder Con Cita
  #3  
Antiguo 06-12-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Te hizo falta poner of object en la declaración del tipo evento.

Código Delphi [-]
type
// *** Clase para pasar el evento
TEventoRecibir = procedure (ASender :TObject; var ACadena :string) of object;



Saludos...
Responder Con Cita
  #4  
Antiguo 06-12-2005
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Aún poniendo
Código Delphi [-]
type
  // *** Clase para pasar el evento
  TEventoRecibir = procedure (ASender :TObject; var ACadena :string) of object;

Me falla en..
Código Delphi [-]
  published
    AlRecibir :TEventoRecibir
      read FAlRecibir; // Linea 75  
      write FAlRecibir; // Linea 76
end; // Linea 77

Me suelta lo siguiente:
Código:
[Error] scEscipion.pas(75): Published field 'AlRecibir' not a class nor interface type
[Error] scEscipion.pas(75): ',' or ':' expected but ';' found
[Error] scEscipion.pas(76): ',' or ':' expected but identifier 'FAlRecibir' found
[Error] scEscipion.pas(77): Type expected but 'END' found
__________________
:)
Responder Con Cita
  #5  
Antiguo 06-12-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Ah!!, es que no me fijé que también tenías otro error: no estás usando la palabra reservada property para declarar el evento de tu clase:

Código Delphi [-]
  // ...
published
  property AlRecibir: TEventoRecibir
    read FAlRecibir // <--- aquí no lleva -> ; <-
    write FAlRecibir; 
end; // Linea 77


Saludos...
Responder Con Cita
  #6  
Antiguo 06-12-2005
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Ya está, ¡¡Perfecto!! Muchas gracias.. ahora a rellenar los procedimientos .. en eso creo que no voy a tener problemas

¡¡Muchísimas gracias!!
__________________
:)
Responder Con Cita
  #7  
Antiguo 07-12-2005
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
  procedure Recibir (ASender :TObject; var ACanal, AComando, AParametros :string; var Privado : boolean);
  begin
    Memo1.Lines.Add('Canal: '+ACanal +' Comando: '+ AComando+' Parametros: '+AParametros);
  end;
var
  Bot : TEscipion;
begin
  Bot := TEscipion.Create;
  Bot.Ip := '127.0.0.1';
  Bot.Puerto := 60;
  Bot.FAlRecibir := Recibir; //¡Error!
  Bot.Conectar;
end;
Error: [Error] Unit1.pas(43): Incompatible types: 'method pointer and regular procedure'
__________________
:)
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 01:23:38.


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