Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.81/26: Рейтинг темы: голосов - 26, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 44

работа с Tcomcombobox

11.10.2013, 13:36. Показов 5971. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть объект tcomport в нем есть свойство port в нем хранятся список портов. Мне нужно зделать выборку портов как вы поняли при помощи Tcomcombobox. Вот что пытался делать но работает не совсем как надо
Delphi
1
cbb1.Items.Add(cmprt1.Port);
выдается только тот порт который выбран а мне нужен весь список и собственно переключение на другой порт!
Буду благодарен)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.10.2013, 13:36
Ответы с готовыми решениями:

Работа - проведение обучающих семинаров по C#. Работа по выходным дням ( сб-вс - 32 часа). От 30 000р.
Обязанности - проведение обучающих семинаров по C# Базовый (начальный уровень). Опыт преподавания не обязателен, главное чтобы вы не...

Нужна летиратура, в которой бы описывались работа с событиями, работа с элементами управления
Помогите пожалуйста найти летиратуру, в которой бы описывались работа с событиями,работа со всеми элементами управления(toolbox).И если...

Количество подведенного и отведенного тепла, работа сжатия, работа расширения
Определить количество подведенного и отведенного тепла, работу сжатия, работу расширения, полезную работу и КПД цикла предыдущей...

39
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
14.10.2013, 12:25
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от KIRA93 Посмотреть сообщение
northener,
Код Delphi
Это не исходники. Нужен весь код относящийся к работе с СОМ портом. Если этот код находится в одном модуле, то давай этот модуль целиком. И лучше всего вместе с dfm-файлом. Можно в виде вложения к ответу.
0
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 44
14.10.2013, 12:32  [ТС]
angstrom, нету
0
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 44
14.10.2013, 12:38  [ТС]
northener,Программа swift.rar
0
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
14.10.2013, 13:41
Был не прав. 2 это File not found. Ну нет у тебя в системе того порта, который ты пытался открыть.
0
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 44
14.10.2013, 13:49  [ТС]
northener, так получается мне более человеческую ошибку не вывести ?
0
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
14.10.2013, 14:32
Цитата Сообщение от KIRA93 Посмотреть сообщение
northener, так получается мне более человеческую ошибку не вывести ?
Ну почему же не вывести? Используй обработчик TComport.OnException. В переданных в него параметрах содержится вся информация об ошибке.

Добавлено через 33 минуты
Не. С тем обработчиком хреново жить. Лучше стандартно обработать ошибку:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//открытие порта
procedure TForm3.btn1Click(Sender: TObject);
begin
  try
    cmprt1.Open;
    if cmprt1.Connected = True  then
    lbl1.Caption := 'Порт открыт'
    else
    lbl1.Caption := 'Порт закрыт';
  except
    on E : EComPort do
      if (E.Code = 1) and (E.WinCode = 2) then ShowMessage('Порт '+cmprt1.Port+' не найден');
    else raise;
  end;
end;
1
angstrom
14.10.2013, 15:30
А может вводить в TComboBox только те порты, что есть в системе и не мучаться?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  // Ищем COM-порты в реестре
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKey('HARDWARE\DEVICEMAP\SERIALCOMM', False) then
    begin
      SL  := TStringList.Create;
      SL1 := TStringList.Create;
      try
        SL1.Sorted := True;
        Reg.GetValueNames(SL);
 
        for I := 0 to SL.Count - 1 do
          SL1.Add(Reg.ReadString(SL.Strings[I]));
 
        // ComboBox  
        cbPort.Items.AddStrings(SL1);
      finally
        SL.Free;
        SL1.Free;
      end;
      Reg.CloseKey;
    end;
  finally
    Reg.Free;
  end;
 
  // не нашли? Ищем попыткой открытия
  if cbPort.Items.Count = 0 then
    for I := 0 to 31 do
    begin
      Handle := CreateFile(PChar('\\.\COM' + IntToStr(succ(I))), GENERIC_READ or GENERIC_WRITE, 0, NIL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
      if Handle <> INVALID_HANDLE_VALUE then
        cbPort.Items.Add('COM' + IntToStr(succ(I)));
      CloseHandle(Handle);
    end;
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
14.10.2013, 15:58
angstrom, это стандартное решение должно было быть на следующем уроке
P.S. А почему только 32 порта?
0
angstrom
14.10.2013, 16:00
А больше не бывает.
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
14.10.2013, 16:18
Цитата Сообщение от angstrom Посмотреть сообщение
А больше не бывает.
Винда мне предлагает на выбор от 1 до 256.
0
angstrom
14.10.2013, 16:19
Наверно постарше чем XP?
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 44
17.10.2013, 13:13  [ТС]
northener, у меня еще вопрос а ведь можно открыть com port в другом модуле?
0
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
17.10.2013, 13:19
Цитата Сообщение от KIRA93 Посмотреть сообщение
northener, у меня еще вопрос а ведь можно открыть com port в другом модуле?
Порт можно открыть в любом модуле программы. И закрыть тоже.
0
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 44
17.10.2013, 13:27  [ТС]
northener, в данный момент пытаюсь связать одну программу с другой как вы понимаете в разных модулях вот как я пишу) то есть fmain модуль в котором я обращаюсь к модулю unit2

Delphi
1
2
3
4
5
6
7
8
9
unit fMain;
implementation {$R *.dfm}
 
uses unit2;
 
procedure TfrmMain.Button1Click(Sender: TObject);
begin
Form3.btn1.Click;
end;
в Form3.btn1.Click; прописано открытие порта то что мы написали, но при нажатии на эту кнопку я получаю ту же ошибку что мы обсуждали только с error5
0
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
17.10.2013, 13:44
Цитата Сообщение от KIRA93 Посмотреть сообщение
я получаю ту же ошибку что мы обсуждали только с error5
А вот 5 это значит что порт уже открыт кем-то. А порт это не разделяемый ресурс. Он может быть открыт только в одном месте в одно время.
1
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 44
17.10.2013, 13:59  [ТС]
northener, нашел) где открывается. Благодарствую
0
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 44
18.10.2013, 15:58  [ТС]
northener, еще один вопрос сори за назойливость
вот написал кнопку отправку команды, отправляет и принимает, с первого раза все ок! со второго при перезапуске программы или повторной отправки команды не сразу выполняется условие программы исходники у тебя есть, вообщем баг такой, отправляю команду первый раз не отвечает, со второго раза только
0
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
18.10.2013, 16:19
Цитата Сообщение от KIRA93 Посмотреть сообщение
исходники у тебя есть
Нету исходников. Точнее они не полные.
0
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 44
21.10.2013, 09:26  [ТС]
northener,Программа swift.rar
0
пофигист широкого профиля
4770 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
22.10.2013, 02:31
KIRA93, никак не смог найти документ по протоколу этого устройства. Хотя отчетливо помню что я его видел. Кинь в личку ссылку или сам документ.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2013, 02:31

Работа формы в фоне, вне фокуса (работа с раскладкой клавиатуры)
Как заставить это работать в фоне? Даный код работает пока форма в фокусе, как только ее отпускаем - она не реагирует. Public...

Работа с Меню. Сохранение, печать, создать новый. Работа с рисованием
В общем сабж. Делается программа, которая должная Сохранять, печатать и очищать поле (создать новый/очистка). Также хочу спросить как...

Работа с файловой системой (системное название некоторых папок и работа со скрытыми документами)
Всем привет, подскажите каким образом можно из VBA сохранить документ txt в папке &quot;Общие документы&quot; и задать для него свойство...

Нужна книга, где рассматриваются работа с прерываниями, указатели, работа с памятью, ассемблерные вставки
Привет всем! Подскажите, пожалуйста, хорошую книгу по C (именно C, не C++). Интересует работа с прерываниями, указатели, работа с памятью,...

Работа с файлом (корректный код, некорректная работа программы)
Для записи и чтения файла использую разные функции. По одиночке они работают нормально. Вставляю их прототипы в функцию main() и нижняя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru