|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.02.2010, 18:02 | #1 |
Форумчанин
Регистрация: 21.08.2009
Сообщений: 140
|
освободить СОМ порт
Здравствуйте.
Подскажите, как и в какой процедуре можно освободить программно СОМ порт? Используя компонент Tcom, делаю следующее: Код:
|
09.02.2010, 19:52 | #2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
по логике вещей, comm1.disconnect... а вообще не видно всей процедуры вашей, если вы после того как порт открыли, так его и оставили, то оно правильно всплывает при повторном использовании этой-же процедуры.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
10.02.2010, 09:41 | #3 |
Форумчанин
Регистрация: 21.08.2009
Сообщений: 140
|
вобщем код щелчка по кнопке такой:
Код:
|
10.02.2010, 09:49 | #4 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
1- отделите процедуру connect от посылки данных
2- либо сделайте disconnect после посылки.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
10.02.2010, 10:16 | #5 |
Форумчанин
Регистрация: 21.08.2009
Сообщений: 140
|
Спасибо за совет.
Вот мне 1й вариант больше нравится, т.к. ничего похожего на дисконект не нашел. есть только: free, destroy, done(деструктор). Теперь час-другой буду тестить |
10.02.2010, 10:17 | #6 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
приложите сей компонент тут, глянем... вообще достаточно освободить хэндл для закрытия порта CloseHandle().
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 10.02.2010 в 10:21. |
10.02.2010, 14:57 | #7 |
Форумчанин
Регистрация: 21.08.2009
Сообщений: 140
|
вот компонент.
кстати 1й вариант почемуто не сработал( |
10.02.2010, 15:38 | #8 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
в компоненте процедура connect уже содержит проверку и освобождение хэндла... немножко странная реализация заполнения DCB и только... потестировал у себя, такого как у вас глюка нет... опробуйте еще вот этот компонент (BComPort), отзывы о нем неплохие...
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
10.02.2010, 15:52 | #9 |
Форумчанин
Регистрация: 21.08.2009
Сообщений: 140
|
1) делал так: из procedure TForm1.N10Click(Sender: TObject); (описана в моем 2м сообщении этой темы)
удалил вот "это": Код:
И вот еще что: моя прога реализована через activeform (OCX), который я потом в WORDe через VBA запускаю. Последний раз редактировалось varelik; 10.02.2010 в 16:00. |
10.02.2010, 16:12 | #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 |