Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с RichEdit [D7, Win2k]


TAS ©   (2006-08-16 16:49:00) 

Проблема состоит в следующем:
Написал я прогу, которая пингует хосты и выводит сообщения о результатах в RichEdit. Пинг каждого хоста - отдельный поток.
При добавлении строки в RichEdit каждый поток использует процедуру:

procedure AddColoredLine(ARichEdit: TRichEdit; AText: string; AColor: TColor);
begin
 with ARichEdit do
 begin
   SelStart:=Length(Text);
   SelAttributes.Color:=AColor;
   Lines.Add(String(AText));
 end;
end;


При вызове этой процедуры вылетает ошибка:
Richedit line insertion error
и поток останавливается.

В чем моя ошибка?

Спасибо.


TAS   (2006-08-17 11:49:00) [1]

Все, разобрался. Спасибо!


Чапаев   (2006-08-16 17:11:00) [2]

> В обращении к RichEdit'у из неглавного потока?

...несинхронизированном. ;-)


begin...end   (2006-08-16 16:54:00) [3]

> TAS ©   (16.08.06 16:49)
> В чем моя ошибка?

В обращении к RichEdit'у из неглавного потока?


Zeqfreed   (2006-08-16 16:52:00) [4]

Попробую предположить, что RichEdit — не потокобезопасный компонент и все операции с ним нужно производить в контексте основного потока (См. TThread.Synchronize).


Наверх

Титульная страница Поиск, карта сайта Написать письмо