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

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

потоки


Страницы:   1 2

авыф ©   (2007-12-05 15:19:00) 

Всем доброго дня.
Нужно сделать базовый класс, содержащий форму и поток. Т.е. форма будет одна и та же, а метод потока будет переопределятся. Так вообще можно? Допустим Execute потока вызывает какой-нибудь виртуальный метод формы, который потом и переопределяется. Подскажите, кто знает, а то я никогда с потоками дела не имел.


Kolan   (2007-12-05 15:48:00) [21]

> Нужно сделать базовый класс


> Надо сделать форму



> еще и кнопку туда хочу:)


Не хочу я кнопку, хочу быть владычецей морскою.


Palladin   (2007-12-05 15:46:00) [22]


> авыф   (05.12.07 15:38) [5]

объясни, что ты хочешь делать в этом потоке? насколько я понял, виртуальный метод формы тебе нужен лишь для разных стилей отображения какой либо одной и той же работы?


авыф   (2007-12-05 15:39:00) [23]


> Сергей М. ©   (05.12.07 15:30) [3]

еще и кнопку туда хочу:)


авыф   (2007-12-05 15:38:00) [24]


> а с этим еще хуже, так как, сам понимаешь, TThread.Synchronize
> в методе формы доступен не будет

Ну, а как-нибудь обойти-то можно? Если передать количество обрабатываемых записей. А по таймеру из Execute вызывать там SetDisplayText? Така можно?


Palladin   (2007-12-05 15:33:00) [25]


> все это дело выполняется в потоке и на форме отображаются:
>  текущее время, положение прогрессбара, в мемо выводится
> какая-то инфа - это уже надо инк. в предок.
>


а с этим еще хуже, так как, сам понимаешь, TThread.Synchronize в методе формы доступен не будет


Сергей М.   (2007-12-05 15:30:00) [26]


> Нужно сделать базовый класс, содержащийформу и поток


Это как ?


Palladin   (2007-12-05 15:29:00) [27]

Type
TMyThreadClass=Class(TThread)
 Private
  m_theForm:TMyForm;
 Protected
  Procedure Execute; Override;
 Public
  Constructor Create(Suspended:Boolean;p_theForm:TMyForm);
End;

Constructor Create;
Begin
m_theForm:=p_theForm;
Inherited Create(Suspended);
End;

Procedure Execute;
Begin
m_theForm.MyThreadProc;
End;

вот только будет попа с попытками контролировать исполнение потока, придется заводить в форме потоко-безопасную переменную для сигнализирования тому же методу MyThreadProc дабы он завершила свою работу в случае, например, закрытия формы...


авыф   (2007-12-05 15:24:00) [28]

Или так:

Надо сделать форму, переопределив метод, скажем Processing, которой, все это дело выполняется в потоке и на форме отображаются: текущее время, положение прогрессбара, в мемо выводится какая-то инфа - это уже надо инк. в предок. Эт. вообще реально?


Страницы:   1 2

Наверх

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