Текущий архив: 2003.03.31;
Скачать: CL | DM;
Вниз
формы в DLL и как с ними бороться Найти похожие ветки
← →
Digitman (2003-03-14 12:50) [40]
> прочитал в Кулибе
а в той же "Кулибе" ты не удосужился прочитать хоть что-то про обработку исключений ? про try..except ?
хоть бы тело своей подозрительной fuck_on() на время отладки защитил этим блоком)... нет ведь ! гораздо познавательней изощряться в жаргоне и изобретении дурацкизх идентификаторов а-аля ZHOPA, fuck_on e.t.c.
← →
Ihor Osov'yak (2003-03-14 12:52) [41]2 Digitman © (14.03.03 12:41)
> ба, да тут еще и интерфейсы !!!!!
Release не только в интервейсах есть.. :-) - говорю ж ОЧеньУМЕЛЫЕ ручки
2 dj next (14.03.03 12:45)
> 2. из примера ВИДНО что создаётся и убивается столько раз сколько
обращений к функции fuck_on
Это тебе только так кажется..
Перекрой BeforeDestruction и поставь там тривиальный windows.MessageBox.. Очень вероятно, что очень удивишся...
Зы - также твой код допускает вызов деструктора и в случае, если форма почему-то не создалась (ошибка в конструкторе)...
← →
dj next (2003-03-14 12:52) [42]ВСЁ завёрнуто в try..except! (читать я умею еще пока)
← →
Игорь Шевченко (2003-03-14 12:55) [43]dj next (14.03.03 12:25)
Тебе ж, несмышленому, сказали - Тейксейра, Пачеко. Там как раз случаи с формами в DLL подробно разбираются.
← →
Ihor Osov'yak (2003-03-14 13:00) [44]2 dj next (14.03.03 12:52)
А вот все завивать не надо.. Завивать нужно то что нужно и осознано. Если не осознано - то лучше вообще не завивать - но это уже имхо...
в твоем примере более кореектно было бы
ZHOPA:=TZHOPA.Create(nil);
try
тра-ля-ля...
finally
ZHOPA.Release;
ZHOPA:=nil;
end;
или
try
ZHOPA:=TZHOPA.Create(nil);
try
тра-ля-ля...
finally
ZHOPA.Release;
ZHOPA:=nil;
end;
except
MessaheBox(0,"Warning","Oй",MB_OKCancel+MB_ICOMWARNING");
end
Это верно, если тра-ля-ля... подразумевает ShowModal и сама форма сама сябя не уничтожает (есть и такой вариант)..
Если это не так - то то, что я писал выше в этом постинге - не совсем верно. Или даже совсем не верно. Но я не телепат..
← →
Ihor Osov'yak (2003-03-14 13:04) [45]2 Игорь Шевченко © (14.03.03 12:55)
Дык основная проблема в том, имхо, что чел или читать не умеет или не хочет.. Последнее лечится трудно..
← →
Anatoly Podgoretsky (2003-03-14 13:09) [46]Digitman © (14.03.03 12:50)
> прочитал в Кулибе
Кулиба создана на основе наших же советов, как правильных, так и не правильных, а последних там хватает и к сожалению почему практика их применения шире правильных, один совет по инсталляции БДЕ методом копирования длл в папку с программами чего стоит.
← →
dj next (2003-03-14 13:09) [47]в BeforeDestruction ничего удивительного нет
зато пока ковырялся понял что создаться форма почему-то
может тока один раз второй раз вызываю создающую функцию - AV
← →
dj next (2003-03-14 13:15) [48]щас убрал всё кроме Create и Free - работает!
всё дело в коде между...
то есть в тра-ля-ля!
вот тока почему?! там с парой Memo и Edit"ов работаю
и всё((
← →
Digitman (2003-03-14 13:15) [49]о , госссподи , воля твоя !
ну поставь ты брейкпойнт на строчке
ZHOPA:=TZHOPA.Create(nil);
да оттрассируй конструирование формы !
ну в чем проблема-то ? ну не понимаю я .... кулиба какая-то, не кулиба....
← →
Digitman (2003-03-14 13:17) [50]
> там с парой Memo и Edit"ов работаю
трассируй тогда все что между конструктором и деструктором !
← →
Ihor Osov'yak (2003-03-14 13:18) [51]Блин, говорил себе, что сюда уже не полезу, но:
dj next (14.03.03 12:45)
1. форма не модальная
2.
procedure fuck_on(...
begin
ZHOPA:=TZHOPA.Create(nil);
тра-ля-ля...
ZHOPA.Release;
ZHOPA:=nil;
end;
Если форма не модальная, то есть ты отображаешь ее не через ShowModal - то ты ничего на экране даже не увидишь... Если ты все же чего то видишь, то ты думаешь одно, делаешь другое, а говоришь тут совсем о третьем..
Так что сорри.
← →
dj next (2003-03-14 13:21) [52]2 Ihor Form.Show знаешь такой метод?
← →
Anatoly Podgoretsky (2003-03-14 13:29) [53]Digitman © (14.03.03 13:15)
Кулиба, не кулиба, но точно название формы :-)
← →
Ihor Osov'yak (2003-03-14 13:31) [54]2 dj next (14.03.03 13:21)
Я много чего знаю (по сравнению с тобой). Имхо даже то, чего тебе и не снилось.
Разбирайся со своими багами сам, а если хочешь, чтобы тебе помоголи - четко отвечай на вопросы. Те говорили, привести код? Ты его привел?
Догадыватся что ты там наворял?
Для особо одаренный обьясняю:
если после вызова Form.Show вызвать сразу же Form.Free то она не должна отображаться на екране заметное время (вернее будет отображатся несколько мгновений между Show и Free.
Если это у тебя не так, то ты заставил работать VCL не так, как предусматривали ее создатели.
Один из вариантов этого достичь
f:=TForm.Create;
f.Show;
PostMessage(f.Handle, /// - это наверно необязательное условие, нет времени експериментировать
Application.ProcessMessages; // главное условие фошки, особенно в dll
f.Free;
И будешь в таком шедевре баги до конца дней своих ловить или до просветления...
← →
Digitman (2003-03-14 13:40) [55]
> Anatoly Podgoretsky
> Кулиба создана на основе наших же советов, как правильных,
> так и не правильных
Вот ведь беда - не в курсе я , что такое кулиба, не ходил туда .. А, может, и к лучшему)...
Жуть там, наверно, страшная ?)... Лучше уж и не пойду туда вовсе, коль такие дела творятся там).. на поверку-то) ...
Насоветуешь тут, а потом своими же граблями по своему же по лбу кааааак - хрясь !!!!
Как сам думаешь, а ?)
← →
dj next (2003-03-14 13:43) [56]между идёт нехилая работа с Interbase и вызывающим приложением))))))
лана методом исключения буду выяснять что глючит...
← →
Digitman (2003-03-14 14:00) [57]аминь
← →
Anatoly Podgoretsky (2003-03-14 14:11) [58]Digitman © (14.03.03 13:40)
Чего тут думать, абсолютно правильное решение, больше времени потеряешь на поиск, еще и обиднее будет если совет неверный, а это непонятно из за уровня знаний.
← →
Digitman (2003-03-14 16:14) [59]))
эй, пацаны ! или как вас там ) .. кто там кулибой заведует "нехило")
есть предложение увековечить сию дискуссионный перл на скрижалях кулибоистории !)
начали за здравие ("формы в DLL и как с ними бороться"),
кончили за упокой (тра-ля-ля = "нехилая работа с Interbase и вызывающим приложением")
во как !)
← →
Ihor Osov'yak (2003-03-14 17:32) [60]да уж, иллюстрация к теме "умение задавать вопросы", а также демонстрация искусства уходить от наводящих (вопросов) и игнорирование ответов то делу - хотя бы Игорь Шевченко © (13.03.03 17:55),
после которого уже можно было бы закрыть разговор :-(.
← →
Ihor Osov'yak (2003-03-14 17:35) [61]зы - мне стидно.. Сорвался..
← →
Digitman (2003-03-14 17:55) [62]
> Ihor Osov"yak
а мне грустно... очень ... за изрядно поредевший строй сегодняшних и будущих настоящих Инеженеров.... (
← →
Ihor Osov'yak (2003-03-14 18:20) [63]Понимаю. И присоединяюсь.
Страницы: 1 2 вся ветка
Текущий архив: 2003.03.31;
Скачать: CL | DM;
Память: 0.56 MB
Время: 0.012 c