有一首歌,比如有5分钟,然后在程序里有6个变量,分别为abcdef.
初始化状态所有变量都为0当在第5秒的时候a变量为1,并保持5秒的时间,也就是第11秒的时候,a为0;b变量为1,并保持3秒的时间,也就是第9秒的时候,b为0;
其他变量保持不变;当在第7秒的时候C变量为1,,保持8秒的时间,也就是第16秒的时候,C为0
其他变量保持不变
当在第 10秒的时候D变量为1,保持2秒的时间,也就是第13秒的时候,d为0
f变量为1,保持4秒的时间,也就是第15秒的时候,f为0
其他变量保持不变当在第 14秒的时候a变量为1,保持5秒的时间,也就是第20秒的时候,a为0
d变量为1,保持4秒的时间,也就是第19秒的时候,d为0其他变量保持不变........若干如上述文字所表示的情况,在一首歌曲的的若干个时间段内,我想使变量有各种的值,具体的时间点比较灵活,不受限制,但是如果用文字表述比较麻烦,我想把上述的声明 ,让用户在软件的参数设置里完成,而不是用文字去表述,因为这样子,客户会嫌比较麻烦,应该设计什么样子的表结构,可以勾划出上述的需求,然后我用一个定时器完成上述情况的判断

解决方案 »

  1.   

    没有看明白你这个到底是做什么的, 但大概可以这样去实现:
    在设置窗体里, 给abcdef这5个变量分别创建2个 TUpDown 和 1个 TTrackBar 组件, 其中2个TUpDown分别存储要设定的值和持续时间; TTrackBar设定: Min=0, Max=歌曲的时间长度, value 就是设定这个值的起始时间. 
    当然可以把上面这些组件放到一个自定义组件里, 这样就组合成一个组件了.
    至于你说一个变量在一首歌里这种设置有多个, 可以把什么的自定义组件进行扩充一下, 这个要根据具体的情况来进行处理.
      

  2.   

    表结构如下:
    sec int,//存储第几秒
    a int, //存储a的值,0或1
    b int, //存储b的值,0或1
    c int, //存储c的值,0或1
    d int, //存储d的值,0或1
    e int, //存储e的值,0或1
    f int  //存储f的值,0或1你用定时器每秒插入一条记录。
      

  3.   

    做一个TabControl,每页一个变量,每个变量一张图,Y轴为变量值,X轴时间,用折线表示变量的时间序列,还可以用颜色填充折线下面的空间。用户用鼠标按下,则在对应此点的时间把变量值设为对应值,鼠标放开则在对应时间把变量值恢复。