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

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

Потоки [D7, WinXP]


wesel ©   (2007-08-17 00:17:00) 

Создал ПРогу для поиска в ЕКселе, но чтобы прога не грузила систему перевел к потоку, все процедуры вывода и нформации описал на форме где находятся элементы вывода данных, а сам поиск описал в модули потока в процедуре Execute Вообщем так : procedure findthread.Execute;
var
book,sheet,find,rows:integer;
range:variant;
str:array [0..7] of string;
fnd:boolean;
begin
while not Terminated do
begin
.....
Synchronize(find1.PosBook(e.activeworkbook.name,book));  ......
end;
end;
на выделеную строку
выдает ошибку"[Error] ThreadFind.pas(52): Incompatible types: 'TThreadMethod' and 'procedure, untyped pointer or untyped parameter'"

не могу понять в чем дело в потоках не силен, только в них разбираюсь. было пару примерчиков, по ним разбирался !


Германн   (2007-08-17 02:46:00) [1]


> так вот решил перевести все в поток.,  если тебе не сложно
> скажи что ты имеешь ввиду, по поводу Архангельского .

В Synchronize нужно поместить только то, что связано с "визуальными компонентами" VCL. То что помещено в вышеупомянутый метод выполнфется в основном потоке.


wesel   (2007-08-17 02:30:00) [2]


> и которая является методом findthread

Тоесть была описана в классе потока, ну я так тоже сначала думал, потом в примерчике который у меня есть, я обнаружил что это необязательно.

примерчик фурычит вполне!

вот я и подумал что необязательно, а поповоду параметров , это конечно интересно!!!


umbra   (2007-08-17 02:00:00) [3]


> в Synchronize надо передавать процедуру без параметров

и которая является методом findthread


wesel   (2007-08-17 01:46:00) [4]

Сдесь на сайте многие советовали Перевести в поток.   Я не мог контролировать процес поиска, пока не закончиться список для поиска, а приходилось искать по 300 значений за раз, прога работает , только когда она работает , ничего другого нормально не функционирует, а из под стола страный запах смазки.

так вот решил перевести все в поток.,  если тебе не сложно скажи что ты имеешь ввиду, по поводу Архангельского .

> ты идёшь неверной дорогой не к ночи будь упомянутого Архангельского.
>  :)

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

А по поводу потоков - Просто хотел бы разобраться что к чему!!


umbra   (2007-08-17 01:40:00) [5]


> hreadFind.pas(52): Incompatible types: 'TThreadMethod' and
> 'procedure, untyped pointer or untyped parameter'"

в Synchronize надо передавать процедуру без параметров


Германн   (2007-08-17 00:39:00) [6]

По поводу данной ошибки ничего не скажу. Читай хелп по Synchronize (наверно так).
Но по поводу
> но чтобы прога не грузила систему перевел к потоку
ты идёшь неверной дорогой не к ночи будь упомянутого Архангельского. :)


Наверх

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