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

Вниз

Runtime Err in DLL Library Module on Terminate !   Найти похожие ветки 

 
Конопелька   (2006-03-01 23:01) [0]

Доброго времени суток уважаемые мастера !
У меня большая проблема с динамическими библиотеками !
Я создал приложение у которого есть главное окно которое в последствии запуска вызывает остальные нужные формы ! Главное приложение запуска используеться как SplashScreen и на нем еще храниться обьект TPopupMenu который я использую для меню в System Tray, соответсвенно из этого меню и запускаються остальные формы ! При создании и работе приложения нивозникает никаких проблем ! Но при выключении появляеться ошибка с нулевым адресом и после нее еще и ошибка Run Time ! Модуль ShareMem использую как написано в литературе ! Вот метод использования функции SystemTray:

Procedure Tlogoform1.WndProc(Var Msg:TMessage);
Var P:TPoint;
Begin
If Msg.Msg=WM_USER+1
 then Case Msg.lParam of
  WM_LbuttonDblClk:
   begin
   ExitDialog;
   end;
  WM_RBUTTONDOWN:
   begin
   SetForegroundWindow(Handle);
   GetCursorPos(P);
   TrayMenu.Popup(P.X,P.Y);
   PostMessage(Handle,WM_NULL,0,0);
  End;
 end;
inherited;
end;

procedure ShellNotify;
begin
With logoform1.FIconData do
begin
cbSize:=SizeOf(logoform1.FIconData);
Wnd:=logoform1.Handle;
uID:=100;
uFlags:=NIF_MESSAGE+NIF_ICON+NIF_TIP;
uCallbackMessage:=WM_USER+1;
hIcon:=Application.Icon.Handle;
StrPCopy(szTip,Application.Title)
end;
Shell_NotifyIcon(NIM_ADD,@LogoForm1.FIconData);
end;


Функция вызова хранилась в библиотеке и пробывал вызывать форму двумя способами:

procedure show_mainform;stdcall;
var mainform1:tmainform1;
begin
mainform1:=tmainform1.create(application);
mainform1.show;
end;


и второй тот же только вместо первой строки внутри процедуры:

application.createform(Tmainform1,mainform1);

а процедуры завершения читал в одной книге что достаточно процедуры FREE над формой и все ! а в другой написано что библиотека ее полностью не освобождает и что нужно использовать метод mainform.RELEASE; и модуль ShareMem даже млин .. в SplashForm запихнул ! ненаю чо делать !! все время при завершении ошибки ! :(((
Подскажите ПОЖУЛУЙСТА как мне правильно использовать формы из динамических библиотек и какие метожы к ним использовать !! Или что у меня не так ! :(((
А еще чуть не забыл компилятор 2005 Architect может он с ошибками !? :(
Заранее большое спасибо !


 
API   (2006-03-02 01:29) [1]

и что нужно использовать метод mainform.RELEASE

Попробуйте:

MainForm.Release;
Application.ProcessMessages;


и только после этого - FreeLibrary.

P.S. На самом деле, очень невнятно описано и слишком много восклицательных знаков.



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

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

Наверх




Память: 0.47 MB
Время: 0.03 c
1-1141204858
BFG9k
2006-03-01 12:20
2006.04.02
Правильное использование WriteBuffer/ReadBuffer в IndyTCPClient


2-1142386962
Bratskiy
2006-03-15 04:42
2006.04.02
Склеивание форм


15-1141710789
WondeRu
2006-03-07 08:53
2006.04.02
IIS + SSL


8-1130231221
Русланк
2005-10-25 13:07
2006.04.02
Работа с bmp


15-1142065152
Труп Васи Доброго
2006-03-11 11:19
2006.04.02
Альтернативные потоки NTFS