Форум: "Основная";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];
Внизсовсем немного вроде осталось, и - на тебе... Найти похожие ветки
← →
Граф (2002-10-21 22:15) [0]Thread поместил в отдельном юните (исключительно для наглядности и красоты), но теперь в процедуре вызываемой методом Synchronize отказвыается понимать переменную MainForm, оставшуюся, понятно в другом юните. Если поставить ссылку на юнит с MainForm в uses юнита-потока, то возникает циклическая ссылка (юнит с MainForm ссылается на юнит-поток и правильно делает :) ).
Можно создать еще один юнит, конечно, но это как-то не очень красиво.
По идее задача банальная, должно быть, соответственно, банальное решение. Но его пока нет :).
← →
Граф (2002-10-21 22:20) [1]Да, вот что еще интересно.
Юнит-поток я создавал через New->Thread Object В созданном юните была такая запись
{ Important: Methods and properties of objects in VCL or CLX can only be used
in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure CopyFile.UpdateCaption;
begin
Form1.Caption := "Updated in a thread";
end; }
То есть, вроде так и должно работать, но у меня вот не хочет. Конечно это я где-то набардачил, но вот где?
← →
TTCustomDelphiMaster (2002-10-21 22:27) [2]Добавляйте uses в implementation
implementation
uses unit1{MainForm};
← →
Граф (2002-10-21 22:33) [3]вопрос снимется, все работает, позор на мою седую бороду
← →
VaS (2002-10-22 09:11) [4]Иметь перекрестные ссылки не есть хорошо. Лучше в модуле с нитью сделать глобальную переменную - указатель на метод (...of object) без параметров, а в модуле с формой в initialization присваивать ей метод формы.
← →
Smithson (2002-10-22 09:38) [5]Иметь перекрестные ссылки ЕСТЬ хорошо, поскольку перекрестными и ссылками они выглядядт только на уровне языка, а после трудов компилятора будет просто общая область видимости (односторонняя).
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.06 c