Delphi自定义类型说明

Delphi自定义类型说明
定义了如下两个类型:
TChannelType = (ctUser, ctTrunk, ctEmpty, ctRecord, ctMessage, ctFax, ctVirtual);
  //通道状态
TChannelStatus = (
  csFree, //空闲
  csOffHook, //摘机
  csDial, //拨号
  csWaitingSignal, //等待拨号音结果
  csTimeOut, //超时
  csConnect, //连接,被叫摘机
  csPlaying, //放音
  csRecording, //录音
  csGetDtmf, //收码
  csHangup, //挂机
  csLink, //连接,会议模式
  csDisable //禁用
  );
现在,需要在界面上显示相应的中文信息,例如:通道类型是ctUser时,显示内线;ctTrunk=外线,等待。
一个解决办法,使用case
case achannel.ChannelType of
  ctUser: s := '内线';
  ctTrunk: s := '外线';
  ......
end;
如果状态多的话,修改很麻烦。
---------------------------------------------------------------------------------------------------
另外一个解决方法:
在一个单元文件uGlobeUnit中定义
resourcestring
  RsUser = '内线';
  RsTrunk = '外线';
  RsEmpty = '悬空';
  RsRecord = '录音';
  RsMessage = '短信';
  RsFax = '传真';
  RsVirtual = '虚拟';


  RsFree = '空闲';
  RsOffHook = '摘机';
  RsDial = '拨号';
  RsWaitingSignal = '等待拨号音';
  RsTimeOut = '超时';
  RsConnect = '连接';
  RsPlaying = '放音';
  RsRecording = '录音';
  RsGetDtmf = '收码';
  RsHangup = '挂机';
  RsLink = '连接';
  RsDisable = '禁用';

然后,在上面定义TChannelType的相同单元中定义:
  Const
  //预定义的通道状态
  GAChannelStatusLabels: array[TChannelStatus] of string = (RsFree, RsOffHook,
  RsDial, RsWaitingSignal, RsTimeOut, RsConnect, RsPlaying, RsRecording,
  RsGetDtmf, RsHangup, RsLink, RsDisable);
  //通道类型说明
  GAChannelTypeLabels: array[TChannelType] of string = (RsUser, RsTrunk, RsEmpty,
  RsRecord, RsMessage, RsFax, RsVirtual);

最后,使用的时候
  s := GAChannelTypeLabels[aChannel.ChannelType];
  //aChannel.ChannelType是TChannelType类型
就可以获得相应的说明了。
同样的
  s := GAChannelStatusLabels[aChannel.status];
可获得状态说明。

你可能感兴趣的:(职场,Delphi,休闲)