Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.59 MB
Время: 0.015 c
3-100143
pa\/el
2003-03-12 10:17
2003.03.31
Экзотическая БД


9-100133
Fog
2002-10-29 15:20
2003.03.31
Бэкгроунд


8-100335
бобёр
2002-12-20 15:45
2003.03.31
gif-файл


1-100292
Supreme 2
2003-03-19 00:41
2003.03.31
Переход в полноэкранный режим и обратно.


1-100326
MrCOLOMBO
2003-03-19 18:41
2003.03.31
Как изменить цвет выделения в ListView