Не выводится текст в Memo из потока
Код:
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ADLite_TLB, XPMan;
type
TFormMain = class(TForm)
mResult: TMemo;
mRes: TMemo;
procedure btnCreateADClick(Sender: TObject);
private
public
end;
TMyThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
var
FormMain: TFormMain;
MyThread: TMyThread;
implementation
{$R *.dfm}
procedure TMyThread.Execute;
var
mRes: TMemo;
begin
ShowMessage('Этот текст показывает');
mRes.SelText := 'Этот текст не выводится в Memo';
mRes.Text := 'Этот текст сразу дает ошибку';
end;
procedure TFormMain.btnCreateADClick(Sender: TObject);
var
begin
MyThread := TMyThread.Create(False);
MyThread.Priority := tpNormal;
MyThread.FreeOnTerminate := true;
try
except
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ADLite_TLB, XPMan;
type
TFormMain = class(TForm)
mResult: TMemo;
mRes: TMemo;
procedure btnCreateADClick(Sender: TObject);
private
public
end;
TMyThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
var
FormMain: TFormMain;
MyThread: TMyThread;
implementation
{$R *.dfm}
procedure TMyThread.Execute;
var
mRes: TMemo;
begin
ShowMessage('Этот текст показывает');
mRes.SelText := 'Этот текст не выводится в Memo';
mRes.Text := 'Этот текст сразу дает ошибку';
end;
procedure TFormMain.btnCreateADClick(Sender: TObject);
var
begin
MyThread := TMyThread.Create(False);
MyThread.Priority := tpNormal;
MyThread.FreeOnTerminate := true;
try
except
end;
end.
Код:
procedure TMyThread.Execute;
begin
Synchronize(UpdatemRes);
end;
procedure TMyThread.UpdatemRes;
begin
ShowMessage('Ýòîò òåêñò ïîêàçûâàåò');
FormMain.mRes.SelText := 'Ýòîò òåêñò íå âûâîäèòñÿ â Memo';
FormMain.mRes.Text := 'Ýòîò òåêñò ñðàçó äàåò îøèáêó';
end;
begin
Synchronize(UpdatemRes);
end;
procedure TMyThread.UpdatemRes;
begin
ShowMessage('Ýòîò òåêñò ïîêàçûâàåò');
FormMain.mRes.SelText := 'Ýòîò òåêñò íå âûâîäèòñÿ â Memo';
FormMain.mRes.Text := 'Ýòîò òåêñò ñðàçó äàåò îøèáêó';
end;
спасибо за ответ, многим пригодится