Главная страница
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.059 c
1-1150459836
oleggar
2006-06-16 16:10
2006.07.30
можно всю форму создать и обслуживать в потоке ?


2-1152169894
Elfebet
2006-07-06 11:11
2006.07.30
Когда мышка покидает форму фокус передается предыдущему окну.


1-1150532479
kaif
2006-06-17 12:21
2006.07.30
Перекомпиляция родных run-time пакетов (*.bpl) Delphi


3-1148570840
Karburator
2006-05-25 19:27
2006.07.30
Крякозябры в компоненте DBGridEh


15-1151863964
фывсссяч
2006-07-02 22:12
2006.07.30
Влияет ли питание на появление угрей