现在作一个基于语音卡的程序,这里碰到一个没法有效区别两条线路对应的问题:我需要随便一条外线接通后再连接一条内线
这时我设置了一个全局变量Oid和Iid;当我得知外线接通了是Oid线,那我遍寻内线,那个空闲就接能那条假设[Oid,Iid}为[1,2]其中内线0和1是占线的;这时我在另一些事件中要判断当Oid(1)外线触发某类事件或方法时,跟着Iid(2)内线也就响应相应的方法和动作;但是这时很可能Oid和Iid值已经变了,可能变[1,0]了这里假设;那当我获取到外线或内线编号时却找不到了对应的内线或外线的对象了,这里有没有什么变量可以自关系一开始就绑定二个的关系而不变,直至当宣布的解散事件触发后,这种绑定关系数据才释放。想了二维数据,也不行;不知怎么对应,不要告诉我是枚举,把所有的组合可能都列出来,再对应,那是绝的没有办法的办法,我的线路是可以扩展到64*64=4096种;枚举理论可通。实际操作太困难,非万不得已不会用
以上在线急等!

解决方案 »

  1.   

    是的,列表是可以,先对应,完了清零,但没有用过,但在过程中用列表需要创建,释放什么的,一不小心就容易出BUG;
      

  2.   

    可以使用TList,TStringList,或者THashedStringList (在IniFiles单元)
    如果你用熟了,非常好用,不会出现楼主所说的现象。反而数组你控制不好会出现内存泄漏的问题。
    实际上TList就是封装了数组的类。操作起来也非常简单。推荐使用THashedStringList,使用方法同TStrings或TStringList。