![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Ребята тут сделал примерчик. Можете что нибудь по нему сказать.
Как бы всё правильно или нет? Если нет то где исправить? M.zip Пример сделан на Delphi Xe2 Последний раз редактировалось ined, 05.07.2012 в 15:25. |
|
#2
|
||||
|
||||
|
Не у всех XE2 есть
![]() |
|
#3
|
||||
|
||||
|
Много поточность только Xe2 реализует?
|
|
#4
|
||||
|
||||
|
Ну еще визуалстудия.
|
|
#6
|
||||
|
||||
|
Цитата:
|
|
#7
|
||||
|
||||
|
Цитата:
Ну так-то да, программа многопоточная, только нельзя из потока обращаться к VCL компонентам. Вот это ты похоже, что не читал: Код:
{
Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure qweqwe.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end;
or
Synchronize(
procedure
begin
Form1.Caption := 'Updated in thread via an anonymous method'
end
)
);
where an anonymous method is passed.
Similarly, the developer can call the Queue method with similar parameters as
above, instead passing another TThread class as the first parameter, putting
the calling thread in a queue with the other thread.
} |
|
#8
|
|||
|
|||
|
из потока ещё sendmessage можно передавать в форму что надо
|
|
#9
|
|||
|
|||
|
Вот такое читали : http://forum.vingrad.ru/topic-60076.html ?
|
|
#10
|
||||
|
||||
|
Цитата:
|
|
#11
|
||||
|
||||
|
При отладке иногда выскакивает ошибка
--------------------------- Debugger Exception Notification --------------------------- Project Project1.exe raised exception class EInvalidOperation with message 'Canvas does not allow drawing'. --------------------------- Что это значит. Я добавил Try - Код:
procedure Execute2; var I, Total, Avg: integer; begin randomize; while Bool2 do Begin try form1.Canvas.Pen.Color:=random($00ffffff); form1.Canvas.Pen.Width:=random(5); Form1.Canvas.MoveTo(random(Form1.Width),random(Form1.Height)); Form1.Canvas.LineTo(random(Form1.Width),random(Form1.Height)); except // Что сюда надо прописать? end; sleep(10); End; EndThread(0); end; |
|
#12
|
||||
|
||||
|
Цитата:
|
|
#13
|
||||
|
||||
|
Цитата:
Если не трудно сделай пожалуйста, так как надо. |