Gracias Delfino.
Ya las he implementado aunque ya he descubierto que tienen sus "cosillas" porque ha veces con formularios dinamicos (o no) tambien da algun "access violation" pero parece que "mejor controlados".
Pongo un ejemplo para el que lo necesite.
Uses IdSync. // necesario
// definir clase
type
TLogSync = class(TIdSync)
protected
s: string;
procedure DoSynchronize; override;
public
procedure Write(const texto: string);
end;
// Sincronizacion
procedure TLogSync.DoSynchronize;
begin
try
FormMain.ListBox1.Items.Add(s);
except
on e: Exception do
Exit;
end;
end;
procedure TLogSync.Write(const texto: string);
begin
s := texto;
Synchronize;
end;
// uso
procedure TFormMain.IdTCPServerLog(msg: string);
var
LogSync: TLogSync;
begin
LogSync := TLogSync.Create;
LogSync.Write(msg);
LogSync.Free;
end;
|