Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];

Вниз

Коллизии потоков   Найти похожие ветки 

 
Grigory   (2001-12-26 10:09) [0]

Хочу узнать что происходит в таком случае:
поток 1 (главный поток программы) создаёт класс дочерний от TThread :
thread := Tmy_thread.Create;
затем выполняется оператор thread.Resume - запускается метод execute объекта thread в отдельном потоке.
После этого выполняется myForm.ShowModal; - приложение блокируется модальным окном.

В классе Tmy_thread на событие OnTerminate повешан следующий метод в котором закрывается модальное окно:

Выглядит всё это так:

Procedure Form1.onBtnClick (Sender: TObject);
begin
thread := Tmy_thread.Create;
thread.OnTerminate := doTerminateMyThread;
thread.Resume;
myForm.ShowModal;
end;

Procedure Form1.doTerminateMyThread (Sender: TObject);
begin
myForm.Close;
end;

вроде всё верно написано, вот только работает не так как хочется:
1 Окно myForm не закрывается после отработки процесса, пока не двинуть на нём мышкой !!!
2 После закрытия главного окна программы вылетает Exception :
"Win32 error. Code: 1440. Invalid window handle"

ПОЧЕМУ НЕ ЗАКРЫВАЕТСЯ ОКНО???!!!
И ОТКУДА БЕРЁТСЯ EXCEPTION???!!!

многовато получилось текста :)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.01.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.005 c
4-42623
Семён
2001-11-10 09:36
2002.01.14
Создание главной формы с помощью WinApi


1-42432
wHammer
2001-12-22 10:04
2002.01.14
Как получить псевдографику в Win?


1-42487
ev
2001-12-22 11:00
2002.01.14
что быстрее?


7-42579
NazguL
2001-04-14 15:52
2002.01.14
Как с помощбю WinAPI упровлять громкостью звука


1-42413
Andrey196
2001-12-26 21:38
2002.01.14
Как фон Labela сделать прозрачным?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский