Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2008, 17:53   #1
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
Злость И ещё проблема с DLL

Привет всем!
Эх, не везёт мне...
Та-же прога, что описанна тут: http://programmersforum.ru/showthread.php?t=22245
Когда сворачиваю главную форму (form1, EXE) всё ОК. Но если нажимаю на иконку приложения в таск баре, что бы развернуть главную форму, вылетает следующая ошибка:

utilsDll.dll - это моя dll-ка.
Если отключаю DLL, то всё ОК. Даже не знаю, в чём проблема. form1.onShow нет никаких событий. В библиотеку передаються некотрые указатели, но не на form1. Если кто-то с этим сталкивался, помогите плз.
Altera вне форума Ответить с цитированием
Старый 25.06.2008, 19:15   #2
Ring0Sn
Форумчанин
 
Аватар для Ring0Sn
 
Регистрация: 06.09.2007
Сообщений: 239
По умолчанию

что в событиях onActivation и onShow формы которая в длл?
Ring0Sn вне форума Ответить с цитированием
Старый 25.06.2008, 20:40   #3
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

onFormShow пустой;
onActivate:
Код:
time_out.onRefresh := time_outRefresh;
Компоненту назначаеться процедура; Я сделал так, потому, что в этой процедуре идёт вызов функций, которые в dll;

Код:
procedure{ создание формы }Tmain_form.FormCreate(Sender: TObject);
begin
   load_settings;

   dll_handle := loadLibrary(pCHar(extractFilePath(application.ExeName)+'utilsdll.dll'));
   @dll_creating := getProcAddress(dll_handle, 'creating');
   @dll_free := getProcAddress(dll_handle, 'free');
   @dll_formShow := getProcAddress(dll_handle, 'formShow');

   dll_creating(application.handle, @time_out, @trayIcon);
end;
Altera вне форума Ответить с цитированием
Старый 25.06.2008, 20:48   #4
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Код:
procedure creating(const h: tHandle; td_pointer, to_pointer: pointer); stdCall;
begin 
   application.Handle := h;

   utils_form := tUtils_form.Create(application);
   ats_addedit_form := tAts_addedit_form.Create(application);

   alarm := tAlarm.create;
   timer := tTimer.create;
   secMer := tSecMer.create;
   mplayer := tPlayer.create;
   
   alarm.listView := utils_form.alarm_List;
   timer.listView := utils_form.timer_list;
   secMer.listView := utils_form.secMer_list;
   mplayer.player := utils_form.Player;
   mplayer.player.OnNotify := mplayer.mPlayerNotify;

   timeDate := tTimeDateLabel.Create(application);
   timeDate := tTimeDateLabel(td_pointer^);

   time_out_icon := TCoolTrayIcon.Create(application);
   time_out_icon := TCoolTrayIcon(to_pointer^);

   load_settings;
end;
Проблема возникает после вызова этого кода...
Altera вне форума Ответить с цитированием
Старый 25.06.2008, 20:55   #5
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Кажись разобрался. Мне надо было, чтоб при ... событиях в трее выводилось сообщение (ballonHint). Для ээтого дела я использовал TCoolTrayIcon.
Код:
time_out_icon := TCoolTrayIcon.Create(application);
   time_out_icon := TCoolTrayIcon(to_pointer^);
Сам компонент, как и tTimeDateLabel находиться в exe а нередовал на него указатель. С tTimeDateLabel всё ок (это мой компонент, полезный, могу дать). Буду передовать не указатель на TCoolTrayIcon а указатель на ghjwtlehe в exe, которая будит выводить сообщение.
Altera вне форума Ответить с цитированием
Старый 25.06.2008, 21:08   #6
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Вот, всё исправил.
Altera вне форума Ответить с цитированием
Старый 25.06.2008, 22:00   #7
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
Сообщение

tTimeDateLabel - это который в себе выводит текущее время и дуту?
его несложно написать, внедрить в лейбл таймер, а также создать свойство активации режима времени.
Alter вне форума Ответить с цитированием
Старый 25.06.2008, 23:45   #8
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Да, правильно Alter. Но он чуть навороченный.
Вложения
Тип файла: rar TimeDateLabel.rar (1.6 Кб, 14 просмотров)
Altera вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема. kupulau Общие вопросы C/C++ 19 05.02.2008 21:11
проблема с URL Scorpeon Помощь студентам 1 18.06.2007 13:28