Ver Mensaje Individual
  #2  
Antiguo 03-03-2015
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Reputación: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por Lepuke Ver Mensaje
¿ Cual es el problema ?
No estoy seguro al 100%, pero yo diría que no asignas correctamente el evento.

En primer lugar, no tienes que usar TMethod. En segundo lugar, asignas el manejador del evento después de abrir el socket, así que normal que no lo llame porque no le das oportunidad.

Mira a ver si lo siguiente funciona (no tengo Delphi [ni Windows] en este momento, así que no puedo comprobarlo yo):
Código Delphi [-]
program chat;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils, System.Win.ScktComp, idContext, idGlobal;



  TYPE
  (* Mi Aplicación. *)
    TMiAplicacion = CLASS (TObject)
    PUBLIC
      PROCEDURE leer_datos (Sender: TObject);
    END;



  Procedure TMiAplicacion.leer_datos(Sender: TObject);
  Begin
    WriteLn (TCustomWinSocket (Socket).ReceiveText)
  End;

var
  MiApp: TMiAplicacion;
  ClientSocket1: TCustomWinSocket;
begin
  try
    MiApp := TMiAplicacion.Create;

    ClientSocket1 := TClientSocket.Create(nil);
    ClientSocket1.Address := '127.0.0.1';
    ClientSocket1.Port := 123;

    ClientSocket1.OnRead := @MiApp.leer_datos;

    ClientSocket1.Open;

    while '1'='1' do
    begin
      //
    end;


except
  on E: Exception do
    Writeln(E.ClassName, ': ', E.Message);
end;
  FreeAndNil (ClientSocket1);
  FreeAndNil (MiApp)
end.
En cualquier caso, quizá te venga bien echarle un vistazo a la biblioteca Synapse.

Y una pregunta, ¿Delphi no tiene una clase TCustomApplication, como Lazarus? Si es así, también te recomiendo que la uses porque te facilitará las cosas. En cualquier caso, un objeto "Aplicacion" casi siempre es útil, sobre todo en aplicaciones complejas.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine

Última edición por Ñuño Martínez fecha: 03-03-2015 a las 11:22:13. Razón: Mejor código.
Responder Con Cita