Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.30;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.028 c
1-1150371712
PRT
2006-06-15 15:41
2006.07.30
Doc2TXT


15-1151902445
YurikGL
2006-07-03 08:54
2006.07.30
Ссылка убивающая буфер обмена


2-1152352938
Grotesque
2006-07-08 14:02
2006.07.30
Progressbar


4-1145132365
Antonyan
2006-04-16 00:19
2006.07.30
Проблема с Async Professional


11-1130966214
NORDmen
2005-11-03 00:16
2006.07.30
run-time packages&kol