Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 10-07-2015
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 835
Poder: 24
gatosoft Va camino a la fama
Apoyando lo que dice Neftalí,

en el procedimeinto createsrv son "sospechosas" las asignaciones:

Código Delphi [-]
srv.OnClientConnect    :=  doconnect;
srv.OnClientDisconnect := dodisconnect;

debido a que los evbentos normalemente deben pertenecer a un objeto y no puedens er procedimientos aislados. Ver la definición del evento TNotifyEvent:

Código Delphi [-]
TNotifyEvent = procedure (Sender:TObject) of Object;

Por tanto, deberias definir tus procedimientos en una clase... como buena práctica ademas..

Respondiendo tu pregunta específica, tal como dicen ElKurgan y AgustinOrtu , puedes definir tus propios eventos en lugar de utilizar el timer, asi:


Código Delphi [-]
Unit Srv;

interfase

Type

TConexion=Clas(TObject)
Private
  FOnClientConnect: TNotifyEvent;
  FOnClientDisConnect: TNotifyEvent;
Public  
  Property OnClientConnect: TNotifyevent read FOnClientConnect write FOnClientConnect;
  Property OnClientDisconnect: TNotifyevent read FOnClientDisconnect write FOnClientDisconnect;
  procedure createsrv;
  procedure doconnect;
  procedure dodisconnect;
End;//TConexion

implementation

procedure TConexion.createsrv;
begin
  srv := TServerSocket.Create( nil);
  srv.Port := 1000;
  srv.Active := true;
  srv.OnClientConnect    :=  doconnect;
  srv.OnClientDisconnect := dodisconnect;
end;

procedure TConexion.doconnect;
begin
  lconnect := true;
  if Assigned(FOnClientConnect) then
     OnClientConnect(nil);
end;

procedure TConexion.dodisconnect;
begin
  lconnect := false;
  if Assigned(FOnClientDisConnect) then
     OnClientDisConnect(nil);  
end;

end.

en tu form principal haces:


Código Delphi [-]
Unit TForm

TFrom1 = Clas(TForm)
Public
  LaConexion: TConexion;
  procedure MyOnClientConnect(Sender:TObject);
  procedure MyOnClientDisConnect(Sender:TObject);
end;

// Al crear el form abrimos la conexion
FormCreate:
Begin
 .....
  LaConexion:= TConexion.create;
  LaConexion.OnClientConect:= MyOnClientConnect;
  LaConexion.OnClientDisconect:= MyOnClientDisConnect;
  LaConexion.createsrv;
 ..... 
End;

Formclose:
Begin
  LaConexion.Free;
end;

procedure MyOnClientConnect(Sender:TObject);
Begin
  label1.caption := 'conectado'
end;

procedure MyOnClientDisConnect(Sender:TObject);
Begin
  label1.caption := 'desconectado';
end;

Saludo,
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Métodos de estudio. ixMike Humor 0 19-12-2007 20:37:21
Metodos abstractos nikotina JAVA 6 17-08-2007 19:29:01
herencia de metodos supermilloriver OOP 7 07-01-2006 14:46:01
Crear query dentro de unit y funcion? alehillebrand OOP 3 19-07-2005 00:56:59
como puedo usar una unit externa dentro de mi aplicacion redlyon13 Varios 2 30-11-2003 18:09:13


La franja horaria es GMT +2. Ahora son las 14:58:58.


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
Copyright 1996-2007 Club Delphi