Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> запихнуть таймер в dll, Событие OnTimer в dll 
V
    Опции темы
morpheyushka
Дата 22.1.2009, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: 3
Всего: 8



Пишу dll (что то вроде драйвера) для программы. dll состоит из процедур и функций (что не удивительно) для работы с фискальным регистратором. И там мне необходим таймер (именно в dll). Создать саму переменную Timer: TTimer, выставить интервал и т.д. - не проблема, а вот как попасть в супер событие OnTimer и сделать обработку этого события???? Может кто то пытался уже.


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
THandle
Дата 22.1.2009, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 65
Всего: 372



morpheyushka, таймер - это сообщение WM_TIMER. Соответственно нужно обрабатывать сообщения... Посмотри тему:

http://forum.vingrad.ru/forum/topic-206569...y1484985/0.html

Ну и msdn по таймерам:

http://msdn.microsoft.com/en-us/library/ms632592(VS.85).aspx
PM   Вверх
morpheyushka
Дата 22.1.2009, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: 3
Всего: 8



THandle, буду смотреть - о результатах отпишу smile 


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
morpheyushka
Дата 23.1.2009, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: 3
Всего: 8



Почему в dll я не могу присвоить процедуру событию OnTimer.
В обычном приложении такой код работает
Код

procedure OnMyTimer(Sender: TObject);
begin
  Application.MessageBox('Timer arbaiten!!!', 'Arbaiten', MB_OK);
end;

exports
  OpenCommPort, CloseCommPort, UPAS, NULL, MakeCheck, MakePay, EncashmentIn,
  EncashmentOut;

begin
  Timer := TTimer.Create(nil);
  Timer.OnTimer := OnMyTimer; // <-- Incompatible types: 'method pointer and regular procedure'
  Timer.Interval := 3000;
  Timer.Enabled := true;
  Answer := '';
  fRead := false;
end.



--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
Rrader
  Дата 23.1.2009, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 70
Всего: 191



morpheyushka, сто раз уже обсуждалось. Нужен метод, а не обычная процедура. Либо делай через вспомогательный класс, либо через TMethod (поиск по форуму все покажет)

Это сообщение отредактировал(а) Rrader - 23.1.2009, 12:57


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
morpheyushka
Дата 23.1.2009, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: 3
Всего: 8



Rrader,  Спасибо большое...ну и плюсик с меня.

Сделал так:
Код

var
  Mtd: TMethod;
...
procedure OnMyTimer(Sender: TObject);
begin
  Application.MessageBox('Timer arbaiten!!!', 'Arbaiten', MB_OK);
end;

begin
  Timer := TTimer.Create(nil);
  Mtd.Code := @OnMyTimer;
  Mtd.Data := Timer;
  Timer.OnTimer := TNotifyEvent(Mtd);
  Timer.Interval := 3000;
  Timer.Enabled := true;
...


Все работает

Добавлено через 19 секунд
И как раз то что мне нужно smile 


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0490 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.