|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.11.2010, 20:38 | #1 | |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Менеджер таймеров
Ситуация:
Для двига делаю возможность созания таймера средствами самого двига. Код:
Так вот, как особо продвинутые из Вас знают, способов создания таймера два: 1) Через получение формой сообщения WM_TIMER. 2) Через callback функцию. Первый способ мне не подходит по одной простой причине: Цитата:
А вот со вторым заковырка. Код:
Обсудив этот вопрос по аське со Stilet`ом пришли к выводу, что наиболее простым и работающим вариантом будет создание потока и передача ему в параметрах процедуры, переданной пользователем, а всамо потоке создать callback, в котором вызывать пользовательскую... НО! Сейчас dll двигла весит 42 кб в непожатом и 21 в пожатом состояниях. Номально и даже превосходно для двигла для создания окон на WinAPI. А вот при подключении Classes для созания потоков размер уходит в 200 кб, что не приемлемо для проекта такого рода. Что предложите, господа присяжные заседатели?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
|
10.11.2010, 21:02 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ну я вижу два выхода:
1)потоки на АПИ. 2)сделать список/массив соответствия ID->обработчик Код:
кстати смотри, что работе этому таймеру в любом случае нужен цикл основной(сообщений) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
10.11.2010, 21:14 | #3 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Эм... Немного не понял...
Если пользователь создаст первый таймер с частотой 300 и второй с частотой 500, когда будет вызываться TimerHandler?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ Последний раз редактировалось Alex Cones; 10.11.2010 в 21:17. |
10.11.2010, 21:16 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
советую копатся, ибо и не такие извраты творятся
(теже потоки у VCL(да и не тока), тоже хитрость с параметром) что такое? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
10.11.2010, 21:21 | #5 | |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
А где можно найти читаемый (не MSDN) ман по созанию потоков на API?
Цитата:
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
|
10.11.2010, 21:25 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
каждое срабатывание таймеров(обоих) должно вызывать(с разным ID, и соответственно разная процедура обработки)
насчет манов не знаю, мне msdn хватает и сорцов от Делфи Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
10.11.2010, 21:27 | #7 | |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Цитата:
Если да, то на потоки можно забить.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
|
10.11.2010, 21:32 | #8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
принцип PostThreadMessage.(по сути те же сообщения)
потому и нужен цикл обработки сообщений. а не уверен я потому что не тестировал. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
11.11.2010, 19:08 | #9 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Понял, спасибо.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ Последний раз редактировалось Alex Cones; 11.11.2010 в 19:13. |
11.11.2010, 19:34 | #10 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Код:
p.s. написал на C++, на дельфи тяжело уже писать так, тут в принципе ничего тяжелого. Надеюсь это вы не примите как навязывание своего мнения насильно вам. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Файловый менеджер | akosh12345 | Общие вопросы Delphi | 12 | 11.05.2010 21:55 |
файловый менеджер | чижик-пыжик | Общие вопросы .NET | 1 | 05.03.2010 11:51 |
Варианты реализации программы с использованием таймеров | Casper-SC | Общие вопросы Delphi | 10 | 28.11.2009 19:18 |
Менеджер контента | Insainer | HTML и CSS | 1 | 27.04.2008 11:06 |