Ver Mensaje Individual
  #5  
Antiguo 11-05-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.309
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Thoronluin Ver Mensaje

O incluir el Memo en la declaración del Thread:... Synchronize(Ventana_Principal.Memo1.Lines.Add('pepe'));

Puedes definir el memo propiedad (pública) del Thread, por ejemplo, o pasarlo como parámetro en el Create (redefiniendolo).
Cuando crees el Thread o después, si lo creas suspendido, asignas el memo del programa principal a tu propiedad del thread. Luego puedes accederlo.
Código Delphi [-]
TPruebaMensaje = class(TThread)
   private
   protected
   public
      MemoMain: Tmemo;
      procedure Execute; override;
      procedure UpdateProgress;
 end;
...

var
   MensajeThread: TPruebaMensaje;
begin
   MensajeThread := TPruebaMensaje.Create(True);
   MensajeThread.MemoMain := memo1;
   MensajeThread.FreeOnTerminate:=true;
...
Luego, desde el thread, no debes acceder al memo del programa principal:

Código Delphi [-]
Synchronize(Ventana_Principal.Memo1.Lines.Add('pepe'));

Si no al memo del Thread.

Código Delphi [-]
Synchronize(MemoMain.Lines.Add('pepe'));
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita