Главная страница
    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.56 MB
Время: 0.012 c
14-100429
SergeN
2003-03-14 11:53
2003.03.31
Модуль TeCanvas


1-100313
AlexVit
2003-03-19 12:39
2003.03.31
Несколько таймеров не могут работать параллельно?


6-100356
oleg_poligon
2003-02-08 13:24
2003.03.31
Sockets


1-100321
GIMLI
2003-03-19 22:24
2003.03.31
RXRichEdit


3-100173
Minva74
2003-03-12 21:15
2003.03.31
Добавление файла в запись БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский