Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.25;
Скачать: CL | DM;

Вниз

Runtime error на выходе KOL-приложения   Найти похожие ветки 

 
Alextp ©   (2005-10-15 20:58) [0]

Hello All,

Мой проект при закрытии дает Runtime error 216.
В чем тут может быть дело? Где-то в KOL или MCK ошибка (KOL 2.10, Delphi 4). Проект - это dll, и runtime error появляется при закрытии основного приложения.

Попытался повторить ошибку в .exe, выкинул из форм все
лишнее, выложил сюда: http://alextpp.narod.ru/files/bug_KOLTest1.rar
(распаковать в каталог C:\KOLTest1).
Закрываем первую форму по Alt-F4, затем вторую и вылезает ошибка.

В dll я вызываю формы так:
 1) FormProgress.Form.Show;
 (создается форма - в initialization модуля)
 2) NewFormOptions(FormOptions, Applet);
 with FormOptions^ do
   begin
   Form.ShowModalEx;
   if Form.ModalResult=1 then
     begin
     end;
   Form.Free;
   end;


Может быть, я как-то неправильно создаю форму или Applet в
initialization модуля? Или нельзя создавать Applet два раза?
Закомментировал его создание в Config_0.inc, все равно ошибка.
Помогите разобраться, please.

--
Alexey


 
MTsv DN   (2005-10-16 13:08) [1]

Перекомпилировал на: Delphi 7 + KOLnMCK 2.15 + KOLadd(15.10.2005). Все нормально работает и закрывается...
Размер выходного ехе-шника на 2 кБ меньше, чем у Вас в архиве...

С Уважением MTsv DN


 
ECM ©   (2005-10-16 13:54) [2]


> Перекомпилировал на: Delphi 7 + KOLnMCK 2.15 + KOLadd(15.
> 10.2005). Все нормально работает и закрывается...
> Размер выходного ехе-шника на 2 кБ меньше, чем у Вас в архиве.
> ..

То же самое на D6 + 2.15


 
homm ©   (2005-10-16 20:27) [3]

Я чесно сказать не разобрался из твоего вопроса где что, но для инициализации используются Config_3.inc, а для финализации Config_4.inc. Зачем тебе два аплета? Зачем ты управляеш созданием/уничтожением форм, первый раз MCK увидел чтоли, привык как в KOL все ручками?

2 ECM & MTsv DN
У меня вылетает с заменой в дебагер. (D6 + 2.15)


 
Alextp ©   (2005-10-17 01:21) [4]

Вроде разобрался, как поправить: надо не создавать Applet как
 Applet:= NewApplet("IECache");
 Applet.Hide;
 NewFormProgress(FormProgress, Applet);
а присваивать Applet-у значение первой созданной формы:
 NewFormProgress(FormProgress, nil);
 Applet:= FormProgress.Form;
Тогда вроде ошибки не возникает. Почему - непонятно.
Может быть, кому-то при написании dll пригодится.

Правда, у этого метода есть недостаток: форма FormProgress, как Applet,
будет видна в панели задач, что нежелательно. Вопрос, можно ли этого избежать?


 
Alextp ©   (2005-10-17 01:24) [5]

> Я чесно сказать не разобрался из твоего вопроса где что,
>  но для инициализации используются Config_3.inc, а для финализации
> Config_4.inc. Зачем тебе два аплета?

Мне не нужны были два апплета, я уже понял, что если я создаю аплет в коде, то компонент KOLApplet на форму класть не нужно.
Вопрос: как избежать появления главной формы (которая аплет) на панели задач?


 
homm ©   (2005-10-17 01:35) [6]

> а присваивать Applet-у значение первой созданной формы:

А оно и так между прочем аплету присваивается.

> Вопрос: как избежать появления главной формы (которая аплет) на панели задач?

Applet.Visible := false;
Если Applet и первая форма - разные объекты, то форма не скроется. Аплет для того и существует (я имею ввиду TKOLApplet и NewApplet) чтоб кнопка к конкретной форме не привязывалась.

Вы наверное первый раз на MCK проект делаете? Что-то вы все ручками наравите ненужную работу сделать.


 
Alextp ©   (2005-10-17 10:58) [7]

> Вы наверное первый раз на MCK проект делаете? Что-то вы
> все ручками наравите ненужную работу сделать.

Первый раз. А ручками приходится - вот например вижу, что для формы нет стиля SizebleToolWindow, хотя просто ToolWindow есть. И для ToolWindow игнорируются пар-ры minimizeIcon, mazimizeIcon, closeIcon. Приходится ручками править .inc файл, выставлять Result.Form.Style.


 
ECM ©   (2005-10-17 11:26) [8]


> Приходится ручками править .inc файл, выставлять Result.
> Form.Style.

А чем не устраивает традиционный способ - установить нужное значение Form.Style в FormCreate?


 
ECM ©   (2005-10-17 11:41) [9]


> ручками приходится - вот например вижу, что для формы нет
> стиля SizebleToolWindow

Так доработайте MCK самостоятельно - это не так уж сложно...:)
И не надо будет руками править... он все будет генерировать автоматически.
Подправьте, протестируйте - и исправления в мыло Владимиру...
Остальные потом пасибо скажут. :)
Разобраться с MCK всегда полезно... если будут вопросы помогу



Страницы: 1 вся ветка

Текущий архив: 2006.06.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.053 c
4-1143525270
stas77
2006-03-28 09:54
2006.06.25
события windows


2-1149363576
ZV
2006-06-03 23:39
2006.06.25
Sleep


9-1131334072
VolanD666
2005-11-07 06:27
2006.06.25
Как подсчитать FPS?


2-1149758283
Tempora
2006-06-08 13:18
2006.06.25
Вопрос по формам


2-1149502986
новик
2006-06-05 14:23
2006.06.25
преобрпзование типов int64 в int