Dephi自定义类型说明
定义了如下两个类型
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];
可获得状态说明。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。