Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Работа с окном из треда

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Bad Lamer



Зарегистрирован: 23.09.2004
Сообщения: 61

СообщениеДобавлено: Вс Июл 15 2007 16:00    Заголовок сообщения: Работа с окном из треда Ответить с цитатой

Здравствуйте!
Мы сами не местные, поможите чем можете, люди добрые....

Confused

Среда разработки BDS 2006

По щелчку на пункте меню создаётся тред функцией CreateThread, в нём запускается процедура, производящая некоторые вычисления, и показывающая окошко с прогресс-баром для отображения течения процесса.

procedure TMainForm.Action8Execute(Sender: TObject);
var
x: Cardinal;
pr: Pointer;
begin
pr := @TMainForm.anythread;
CreateThread(nil, 0, pr, nil, 0, x);
end;

/////////////

procedure TMainForm.anythread;
var
i: integer;
count: integer;
begin
FormProgress.Show;
count:= 10000;
FormProgress.ProgressBar1.Max := count;
for i := 0 to count do
begin
FormProgress.ProgressBar1.StepIt;
end;
FormProgress.Close;
end;

создание окна с прогрессбаром происходит на стадии запуска приложения...

begin
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TFormProgress, FormProgress);
Application.Run;
end.

Проблема следующая:
при закрытии главной формы приложения происходит ошибка

Exception EOSError in module _____.exe at ______
System Error. Code: 1400.
Недопустимый дескриптор окна.

Если то же самое делать прямо из процедуры вызова меню (без треда) - такой ошибки не возникает... Т.е. после открытия-закрытия окна из треда окно меняет дескриптор?.. Как его сохранить перед вызовом треда, чтобы потом корректно освободить?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...