Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Программирование
>
Delphi
(Модератор:
x77
) > Тема:
Определение номера com-порта
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Определение номера com-порта (Прочитано 14060 раз)
0 Пользователей и 1 Гость смотрят эту тему.
NeferSky
Постоялец
Offline
Бессмертный
Определение номера com-порта
«
:
10-02-2011 08:26 »
Доброго времени суток, Земляне.
Затея состоит в том, чтобы определить, с какого com-порта пришел сигнал.
Использую компонент comm32, создаю массив ком-портов (12 штук), присваиваю им номера, скорости и т.д., и стартую их. Процедура Comm32xReceiveData одна на всех, но в ней не передается номер порта. А хотелось бы. Итак, вопрос: как это лучше реализовать? Стоит ли пытаться добавить номер порта в процедуру OnReceiveData или есть другие пути? Писать 12 процедур для массива ведь не единственное решение?
Записан
Не тронь налаженный механизм, и он тебя не подведет.
Делать надо хорошо, а плохо - само получится.
Kivals
Команда клуба
Offline
Пол:
Re: Определение номера com-порта
«
Ответ #1 :
10-02-2011 11:39 »
NeferSky
, ИМХО у тебя всегда есть Handle порта - а его можешь сопоставить с номером при инициализации.
Да и вроде ничего не мешает наследовать comm32 и добавить в него реквизит...
P.S. рассуждения теоретические - я общение с comm в Delphi писал на чистом WinAPI
Записан
NeferSky
Постоялец
Offline
Бессмертный
Re: Определение номера com-порта
«
Ответ #2 :
10-02-2011 15:22 »
Аааа, да... О хендле я, как обычно, не подумал...
До WinAPI я пока не дорос, а о наследовании можно поподробнее? Добавить свойство самому компоненту я умею, а вот параметр в процедуру - даже не представлю как.
Если нужно, процедура объявляется так:
procedure Comm321ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word) // Реагирует, если на порт чё-нибудь пришло
Компонент Comm321: TComm32.
Могу еще и код comm32.pas выложить, с которого ставил компонент...
Записан
Не тронь налаженный механизм, и он тебя не подведет.
Делать надо хорошо, а плохо - само получится.
Kivals
Команда клуба
Offline
Пол:
Re: Определение номера com-порта
«
Ответ #3 :
10-02-2011 15:29 »
Ой - с подробностями не помогу: последний раз в Дельфи програмил года 4 назад.
Но попробуй прилепить сюда comm32.pas - ИМХО там легко как-то должно быть.
Записан
NeferSky
Постоялец
Offline
Бессмертный
Re: Определение номера com-порта
«
Ответ #4 :
10-02-2011 15:40 »
Comm32.pas...
Kivals
, все же за напоминание о хендле спасибо))) Попробую через него реализовывать, например, если массив будет двумерным, и в нем будут валяться com'ы и соответствующие хендлы - вроде, ничего решение?
Добавлено через 14 часов, 20 минут и 15 секунд:
Ничего не понимаю - у comm32 нет свойства хендла...
Comm32.pas
(31.58 Кб - загружено 911 раз.)
«
Последнее редактирование: 11-02-2011 06:00 от NeferSky
»
Записан
Не тронь налаженный механизм, и он тебя не подведет.
Делать надо хорошо, а плохо - само получится.
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Программирование
>
Delphi
(Модератор:
x77
) > Тема:
Определение номера com-порта
Загружается...