Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не выводится текст в Memo из потока

84K
31 октября 2012 года
Васягриша
5 / / 24.10.2012
Не удается вывести текст в 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.
8
02 ноября 2012 года
mfender
3.5K / / 15.06.2005
Тут сразу ошибка ООП: TMemo.mRes - объект, созданный в TFormMain.FormMain. Поэтому var mRes: TMemo в Execute вообще не на него указывает. Обращаться нужно к FormMain.mRes. И обращаться к VCL из потоков нужно обязательно через Synchronize!!!


Код:
procedure TMyThread.Execute;
begin
  Synchronize(UpdatemRes);
end;

procedure TMyThread.UpdatemRes;
begin
  ShowMessage('Ýòîò òåêñò ïîêàçûâàåò');
  FormMain.mRes.SelText := 'Ýòîò òåêñò íå âûâîäèòñÿ â Memo';
  FormMain.mRes.Text := 'Ýòîò òåêñò ñðàçó äàåò îøèáêó';
end;
84K
03 ноября 2012 года
Васягриша
5 / / 24.10.2012
спасибо за ответ, многим пригодится

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог