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

Вниз

DLL и форма   Найти похожие ветки 

 
Amoeba ©   (2006-07-12 16:59) [40]


> repeat
>  Application.ProcessMessages;
>  sleep(100);
> until not (newform = nil);

И нафига здесь Sleep?


 
Desdechado ©   (2006-07-12 17:02) [41]

Yegorchic ©   (12.07.06 16:57) [39]
Так и вынеси в поток действия, а не создание формы и работу из нее.


 
Yegorchic ©   (2006-07-12 17:09) [42]


> Amoeba ©   (12.07.06 16:54) [38]


Когда сделал ка вы сказали, всё стало только хуже: поток как бы вообще не запусклся. Ну MyProc не выполнялась, как бы.

Да, с потоками я недавно работаю, и вы сказали, что надо делать этот Synchronize, но я делаю всё и без него и с компонентами работаю - всё хорошо работает. В этом потоке ещё есть некоторые функции (например mainForm.iLabel.Caption:="тест"; - и всё появляется, но когда поставил этот Synchronize - перестало всё работать, как я уже сказал)


 
Yegorchic ©   (2006-07-12 17:14) [43]


> Desdechado ©   (12.07.06 17:02) [41]


Да, я так пытался сделать. Когда я создавал newform в OnCreate MainForm"ы и делал newform.free в OnDestroy MainForm"ы, то тогда мне прога выдавала ошибку, что "неверный дескриптор окна" при OnDestroy"е (т.е. выполнялся newform.Free). А в потоке тогда я только newform.showModal делал, т.е. его уже не вынести из потока.


 
Yegorchic ©   (2006-07-12 17:14) [44]


> Desdechado ©   (12.07.06 17:02) [41]


Да, я так пытался сделать. Когда я создавал newform в OnCreate MainForm"ы и делал newform.free в OnDestroy MainForm"ы, то тогда мне прога выдавала ошибку, что "неверный дескриптор окна" при OnDestroy"е (т.е. выполнялся newform.Free). А в потоке тогда я только newform.showModal делал, т.е. его уже не вынести из потока.


 
Amoeba ©   (2006-07-12 17:15) [45]


> надо делать этот Synchronize, но я делаю всё и без него
> и с компонентами работаю - всё хорошо работает.

Очень полохо поступаешь. А то, что все работает, то это просто повезло.


 
Yegorchic ©   (2006-07-12 17:18) [46]


> Очень полохо поступаешь. А то, что все работает, то это
> просто повезло.


А почему, кстати, когда я написал synchronize(myProc) - поток как бы "заело" (я выше писад об этом)?


 
Desdechado ©   (2006-07-12 17:23) [47]

> А в потоке тогда я только newform.showModal делал
И зачем?
Нельзя что ли создать поток при нажатии кнопки в форме?


 
Yegorchic ©   (2006-07-12 17:29) [48]


> Нельзя что ли создать поток при нажатии кнопки в форме?

А он так и создаётся.

Я так пытался (выше писал):
Создаётся newform в OnCreate mainform"ы > жмём на кнопку, которая на MainForm > создаётся поток, в середине которого только показывается форма > закончился поток, закрываем программу и всё вроде бы хорошо прошло, как вдруг в OnDestroy MainForm"ы выполняется newform.Free и вылезает ошибка про неверный дескриптор окна.


 
Desdechado ©   (2006-07-12 17:34) [49]

Издеваешься?
В 47 я спрашивал о потоке, который должен что-то делать, не зная о форме вообще. И его можно создать уже после того, как нажата кнопка на форме. И в нем нет смысла пытаться показывать форму, да еще и модально.


 
Yegorchic ©   (2006-07-12 17:41) [50]

Что-то я совсем запутался...
Ладно, наврное надо придумать, как можно сделать это всё по-другому.


 
parovoZZ ©   (2006-07-12 19:53) [51]

Я бы сделал так - жмём кнопку - запускаем модальное окно - в OnCreate создаём нить и делаем всё, что нам хочется.


 
Yegorchic ©   (2006-07-13 09:35) [52]

Всё заработало!
Сделал я всё так:
я создал новую переменную nform: TForm;
Перед запуском потока я создаю эту форму так: nform:=Tnewform.create(nil);
Потом дальше я работал с nform только, и всё было хорошо! Т.к. я работаю с единственным компонентом на форме той - TListView"ов, то я просто нашёл его так (var LV: TListView;):
for i:=0 to nform.ComponentCount-1 do
 if (nform.Components[i] is TListView) then
   LV:=TListView(nform.Components[i]);


И всё, дальше всё делал также как и с той формой: nform.ShowModal; nform.free; nform:=nil; и всё!



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

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

Наверх




Память: 0.54 MB
Время: 0.011 c
6-1138309400
serko
2006-01-27 00:03
2006.07.30
ClienSocket и ServerSocket


15-1151518964
Rial
2006-06-28 22:22
2006.07.30
Пересечение треугольников.


2-1152254350
Darkwing
2006-07-07 10:39
2006.07.30
правильное сохранение размеров окна


2-1152364745
KaLLeKa
2006-07-08 17:19
2006.07.30
Работа с потоками...


15-1150555604
X9
2006-06-17 18:46
2006.07.30
Проблемы с видео





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский