Cita:
Empezado por Thoronluin
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'));