![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 21.08.2009
Сообщений: 140
|
![]()
Здравствуйте.
Подскажите, как и в какой процедуре можно освободить программно СОМ порт? Используя компонент Tcom, делаю следующее: Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
по логике вещей, comm1.disconnect... а вообще не видно всей процедуры вашей, если вы после того как порт открыли, так его и оставили, то оно правильно всплывает при повторном использовании этой-же процедуры.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 21.08.2009
Сообщений: 140
|
![]()
вобщем код щелчка по кнопке такой:
Код:
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
1- отделите процедуру connect от посылки данных
2- либо сделайте disconnect после посылки.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 21.08.2009
Сообщений: 140
|
![]()
Спасибо за совет.
Вот мне 1й вариант больше нравится, т.к. ничего похожего на дисконект не нашел. есть только: free, destroy, done(деструктор). Теперь час-другой буду тестить |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
приложите сей компонент тут, глянем... вообще достаточно освободить хэндл для закрытия порта CloseHandle().
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 10.02.2010 в 10:21. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 21.08.2009
Сообщений: 140
|
![]()
вот компонент.
кстати 1й вариант почемуто не сработал( |
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]() Цитата:
в компоненте процедура connect уже содержит проверку и освобождение хэндла... немножко странная реализация заполнения DCB и только... потестировал у себя, такого как у вас глюка нет... опробуйте еще вот этот компонент (BComPort), отзывы о нем неплохие...
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 21.08.2009
Сообщений: 140
|
![]()
1) делал так: из procedure TForm1.N10Click(Sender: TObject); (описана в моем 2м сообщении этой темы)
удалил вот "это": Код:
И вот еще что: моя прога реализована через activeform (OCX), который я потом в WORDe через VBA запускаю. Последний раз редактировалось varelik; 10.02.2010 в 16:00. |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
обработчик некорректный, вы при любой ошибке получите сообщение что "порт невозможно открыть", а таких сообщений внутри процедуры "connect" аж 3 (заметьте - процедуры)/
...так что пробуйте bcomport, в нем эти вещи "вылизаны" ...что касается activex, проблемы могут возникнуть, если будет более одного запущенного экземпляра
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 10.02.2010 в 16:14. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как инициализировать СОМ порт? | luocky | Общие вопросы Delphi | 12 | 14.11.2009 13:32 |
СОМ порт | JUDAS | Win Api | 0 | 10.01.2009 21:27 |
вопрос про СОМ-порт | фЁдОр | Компьютерное железо | 8 | 29.12.2008 16:04 |
СОМ порт | SERG1980 | Общие вопросы Delphi | 3 | 17.05.2007 08:06 |
СОМ порт IR управление мультимедиа | Andr12 | Свободное общение | 2 | 10.02.2007 12:07 |