Форум: "Прочее";
Текущий архив: 2009.08.16;
Скачать: [xml.tar.bz2];
ВнизВопрос про потоки Найти похожие ветки
← →
Сергей М. © (2009-06-15 18:44) [80]
> dnepr (15.06.09 18:35) [78]
Так ведь в [75], так же как и в Demos\Threads, нет комментариев)
← →
dnepr (2009-06-15 19:01) [81]nil!
← →
dnepr (2009-06-15 19:02) [82]ну я в потоках более менее теперь разбираюсь, комментарии кое где не нужны
← →
Сергей М. © (2009-06-15 19:07) [83]
> nil!
Чего "nil" ?)
← →
dnepr (2009-06-15 19:27) [84]Юрий, я сделал как вы сказали, но форма зависает когда нажимаешь на кнопку закрытия формы. И потом даже когда письмо доходит - форма недоступна. я сделал так:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if NewThread <> nil then
NewThread.WaitFor;
Form1.Visible:=False;
end;
но все равно также...
> Будет. Переменная не может не иметь никакого значения.
> Но значение это совсем не то которое ты ожидаешь.
Сергей, наверное nil?
← →
Сергей М. © (2009-06-15 19:32) [85]
> dnepr (15.06.09 19:27) [84]
> наверное nil?
"Не определено" означает любое, т.е. заранее неизвестное значение, в т.ч. и nil.
Локальные переменные подпрограмм в Делфи рождаются, живут и умирают в стеке, если страшное слово "стек" тебе о чем-то говорит.
← →
Сергей М. © (2009-06-15 19:36) [86]
> даже когда письмо доходит - форма недоступна
Сейчас мы еще двести-триста постов будем клянчить у тебя код метода Execute.
Впрочем зачем ?
Ты же заявил
> в потоках более менее теперь разбираюсь
← →
dnepr (2009-06-15 19:36) [87]говорит. я читал об этом
← →
Сергей М. © (2009-06-15 19:41) [88]
> говорит. я читал об этом
И ?
Откуда же тогда взялся NIL ? Если "говорит" и "читал" ?
← →
dnepr (2009-06-15 19:44) [89]
> Откуда же тогда взялся NIL ? Если "говорит" и "читал" ?
я не могу ответить на этот вопрос...
← →
Сергей М. © (2009-06-15 19:45) [90]
> не могу ответить на этот вопрос
Почему ?
← →
dnepr (2009-06-15 19:51) [91]потому что не знаю ответа
← →
Сергей М. © (2009-06-15 19:54) [92]Т.е. от балды ляпнул ?
← →
dnepr (2009-06-15 19:54) [93]я оперся на это:
if NewThread <> nil then
← →
Сергей М. © (2009-06-15 19:58) [94]
> я оперся на это
Почему ?
В [75] нет переменных - ни локальных, ни статических.
А я веду с тобой беседу опираясь на твой код, фигурировавший у тебя до [75]
Прежде чем ортогонально разворачивать оглобли предупреждать вообще-то надо)
← →
dnepr (2009-06-15 20:10) [95]хорошо, извини. Если опираться на код до [75], то я спрошу
> Будет. Переменная не может не иметь никакого значения.
> Но значение это совсем не то которое ты ожидаешь.
чему будет равна переменная NewThread тут ?If NewThread.Suspended Then NewThread.Resume;
← →
Сергей М. © (2009-06-15 20:18) [96]
> dnepr (15.06.09 20:10) [95]
Чему угодно. Значение локальной переменной НЕ определено.
← →
dnepr (2009-06-15 20:21) [97]Сергей помоги разобраться с этим:
type
TForm1 = class(TForm)
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var CanClose: boolean);
private
NewThread: TNewThread;
procedure ThreadTerminated(Sender: TObject);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if NewThread = nil then
begin
NewThread := TNewThread.Create(True);
NewThread.OnTerminate := ThreadTerminated;
NewThread.Resume;
end
end;
procedure TForm1.FormClose(Sender: TObject; var CanClose: boolean);
begin
if NewThread <> nil then
Form1.Hide;
NewThread.WaitFor;
end;
procedure TForm1.ThreadTerminated(Sender: TObject);
begin
FreeAndNil(NewThread);
end;
Я прячу форму когда ее закрывают но программа выполняется и поток тоже. Как сделать так, чтобы форма пряталась, а программа не висела в памяти после выполнения потока (NewThread.WaitFor;)?
← →
Сергей М. © (2009-06-15 20:24) [98]
> dnepr (15.06.09 20:10) [95]
Уточню - не определено если это переменная generic типа.
Упомянутый тобой тип относится к generic-типам данных.
← →
Сергей М. © (2009-06-15 20:27) [99]
> Form1.Hide;
Это что за отсебячина ?
Зачем эта строчка ?
← →
dnepr (2009-06-15 20:28) [100]я же хочу спрятать форму во время выполнения потока, вот я и спрятал...
← →
Сергей М. © (2009-06-15 20:35) [101]
> хочу спрятать форму
А причем здесь тогда "программа не висела в памяти после выполнения потока" ? Какое отношение видимость формы имеет к "висению" чего-то там в памяти ?
← →
dnepr (2009-06-15 20:37) [102]ну я думал, что когда поток завершится, то программа сама себя в памяти убьет, а я на время выполнения этого спрячу форму. А оказалось нет
← →
oldman © (2009-06-15 20:43) [103]
> ну я думал, что когда поток завершится, то программа сама
> себя в памяти убьет
Круто.
;)
← →
sniknik © (2009-06-15 20:44) [104]программа не делает того, что ты хочешь, она делает то что ты пишешь...
← →
dnepr (2009-06-15 20:45) [105]sniknik, и что мне дописать?
← →
Сергей М. © (2009-06-15 20:48) [106]
> а я на время выполнения этого спрячу форму
А нашиша ее прятать явно, если событие OnClose как раз и говорит о том, что форма сейчас "спрячется" ?
← →
sniknik © (2009-06-15 20:50) [107]> sniknik, и что мне дописать?
допиши к программе заявление об уходе, распечатай, убедись, что оно с новой страницы, и неси последний лист в отдел кадров.
пусть вместо тебя возьмут программиста.
← →
dnepr (2009-06-15 20:51) [108]
> А нашиша ее прятать явно, если событие OnClose как раз и
> говорит о том, что форма сейчас "спрячется" ?
а как иначе?
← →
Сергей М. © (2009-06-15 20:52) [109]
program MyDummyProgram;
..
uses ... MyNewThreadUnit ...;
begin
...
Application.Run;
if NewThread <> nil then
NewThread.WaitFor;
end.
← →
sniknik © (2009-06-15 20:55) [110]Сергей М. © (15.06.09 20:52) [109]
ой зря... он так и не показал код execute-а, не опроверг предположение, что используются компоненты с формы...
← →
dnepr (2009-06-15 20:55) [111]теперь она не закрывается....
← →
dnepr (2009-06-15 20:56) [112]в execute не используются компоненты формы
← →
dnepr (2009-06-15 20:58) [113]а еще по завершению потока NewThread форма опять зависает
← →
Игорь Шевченко © (2009-06-15 20:59) [114]
> теперь она не закрывается....
захватывающе!
← →
Сергей М. © (2009-06-15 20:59) [115]
> теперь она не закрывается
Что значит "теперь" ?)
← →
Сергей М. © (2009-06-15 21:01) [116]
> в execute не используются компоненты формы
Там, наверно, секретный код секретной же израильской разведки используется. коль мы до сих пор не имели несчастья его узреть ?)
← →
sniknik © (2009-06-15 21:02) [117]и кто она? если соседка в душе то прикольно, сестра пошло.
← →
MsGuns © (2009-06-15 21:02) [118]Цирк на дроте
← →
dnepr (2009-06-15 21:02) [119]да вы правы
← →
dnepr (2009-06-15 21:06) [120]все... тема перемещена..... мне никто не поможет ..
Страницы: 1 2 3 4 вся ветка
Форум: "Прочее";
Текущий архив: 2009.08.16;
Скачать: [xml.tar.bz2];
Память: 0.66 MB
Время: 0.014 c