主页C++ Builder 资料C++ Builder 串口控件Victor 串口控件使用说明TCommSerialPortInfo
C++ Builder 串口控件
Victor 串口控件使用说明
 • TYbCommDevice
 • TVictorComm
 • TCommQueue
 • EVictorCommError
 • TComm32
 • EComm32Error
 • TVictorSerialPortInfo
 • TVictorSerialPortList
 • TCommSerialPortInfo
 • TVictorFSM
 • TVictorFsmStateT
Victor 串口控件示例程序
C++ Builder 编程技巧
C++ Builder 操作指南
C++ Builder 参考手册
网友留言/技术支持
TCommSerialPortInfo - Victor 串口控件使用说明

说明:

TCommSerialPortInfo 是枚举串口列表类,和以往老版本串口控件兼容。
如果使用了老版本串口控件 (1.5.0.5 及之前的版本) 的 TCommSerialPortInfo 类,不用修改代码就能使用。
新版本的 TCommSerialPortInfo 类在原来的基础上,增加了串口设备的详细描述。

头文件:

Vcl.VictorEnumSerial.h
Fmx.VictorEnumSerial.h

相关类或控件:

TVictorSerialPortInfo, TVictorSerialPortList, TYbCommDevice, TVictorComm

继承关系:

TCommSerialPortInfo 没有继承关系

属性:

属性 类型 描述
PortList TVictorSerialPortList 串口列表 (只读属性),详细说明请参阅 TVictorSerialPortList 的详细说明。
为了和以往版本兼容,当 TCommSerialPortInfo 创建出来的时候,PortList 属性就已经从系统里面枚举出来所有的串口设备的列表了,可以直接从 PortList 属性里面读出所有的串口的详细信息。
定义:
  __property TVictorSerialPortList *PortList = { read = _PortList };
示例程序:
  见本页后面的示例

方法:

方法 描述
TCommSerialPortInfo 构造函数。
定义:
  __fastcall TCommSerialPortInfo();
参数:
  无
注意:
  由系统自动调用 (静态变量) 或者通过 new 来调用 (动态分配), 不需要直接调用。
~TCommSerialPortInfo 析构函数。
  virtual __fastcall ~TCommSerialPortInfo();
注意:
  由系统自动调用(静态变量)或者通过 delete 调用(动态分配), 不需要直接调用。
Refresh 刷新 PortList 属性的串口列表,从系统里面重新读出串口列表到 PortList 属性。
定义:
  void __fastcall Refresh(void);
参数:
  无
返回值:
  无
PortNo 从串口名称得到串口号。
定义:
  static int __fastcall PortNo(UnicodeString s);
参数:
  s: 串口名称,例如 L"COM1", L"COM2", ……
返回值:
  串口号,1 为 COM1,2 为 COM2,如果串口名称不符合 COMn 格式的,返回值为 0
PortName 从串口号得到串口名称。
定义:
  static UnicodeString __fastcall PortName(int iPortNo);
参数:
  iPortNo: 串口号,1 为 COM1,2 为 COM2,……
返回值:
  串口名称,例如 L"COM1", L"COM2", ……

示例程序:

使用 TCommSerialPortInfo 枚举串口的示例程序 (已包含在控件压缩包里面)
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TCommSerialPortInfo spi;
  int iPortCount = spi.PortList->Count;
  int iRowCount = iPortCount + 1;
  if(iRowCount < 2)iRowCount = 2;

  StringGrid1->ColCount = 9;
  StringGrid1->RowCount = iRowCount;

  StringGrid1->Cells[0][0] = L"序号";
  StringGrid1->Cells[1][0] = L"端口名称";
  StringGrid1->Cells[2][0] = L"设备别名";
  StringGrid1->Cells[3][0] = L"类型描述";
  StringGrid1->Cells[4][0] = L"类型GUID";
  StringGrid1->Cells[5][0] = L"设备标识";
  StringGrid1->Cells[6][0] = L"设备描述";
  StringGrid1->Cells[7][0] = L"位置信息";
  StringGrid1->Cells[8][0] = L"注册表的子路径";

  for(int iPortIdx=0; iPortIdx<iPortCount; iPortIdx++)
   {
     TVictorSerialPortInfo *lpPort = spi.PortList->Ports[iPortIdx];
     int iRow = iPortIdx + 1;
     StringGrid1->Cells[0][iRow] = IntToStr(iRow);        // 序号
     StringGrid1->Cells[1][iRow] = lpPort->PortName;      // 端口名称
     StringGrid1->Cells[2][iRow] = lpPort->FriendlyName;  // 设备别名
     StringGrid1->Cells[3][iRow] = lpPort->ClassDesc;     // 类型描述
     StringGrid1->Cells[4][iRow] = lpPort->ClassGuid;     // 类型GUID
     StringGrid1->Cells[5][iRow] = lpPort->InstanceID;    // 设备标识
     StringGrid1->Cells[6][iRow] = lpPort->DeviceDesc;    // 设备描述
     StringGrid1->Cells[7][iRow] = lpPort->LocationInfo;  // 位置信息
     StringGrid1->Cells[8][iRow] = lpPort->RegistryPath;  // 注册表的子路径
   }

  for(int iRow=iPortCount+1; iRow<iRowCount; iRow++)
   {
     for(int iColNo=0; iColNo<StringGrid1->ColCount; iColNo++)
       StringGrid1->Cells[iColNo][iRow] = L"";
   }
}

◤上一页:TVictorSerialPortList下一页:TVictorFSM

C++ 爱好者 -- Victor Chen 的个人网站 www.cppfans.com 辽ICP备11016859号