Главная страница
    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.45 MB
Время: 0.04 c
10-1115904156
Иван Шихалев
2005-05-12 17:22
2006.04.02
Что почитать по CORBA?


1-1141126052
oleg__
2006-02-28 14:27
2006.04.02
Загрузка процессора приложением


2-1142826218
Gydvin
2006-03-20 06:43
2006.04.02
AND, OR в ASMe


6-1134762962
ANSH
2005-12-16 22:56
2006.04.02
получить html-код как текст в файл


6-1134674376
Storm
2005-12-15 22:19
2006.04.02
Ищутся способы перехвата...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский