我定义了一个CmdBuffer
type
CmdBuffer_Record = Record
ID:integer; //条目编号
Content:string; //条目内容
SendTime:TDateTime; //发送时间
end;var CmdBuffer:Array of CmdBuffer_Record;现在我要用一定时器定时检测CmdBuffer中的内容,一旦SendTime的时间与现在时间相隔6秒,那么发送一次该条目,如果超过3次,那么删除该条目(即SendTime时间与现在时间相隔18秒)不知大家有什么好的方法,希望多写点哦,多写多给分:)
type
CmdBuffer_Record = Record
ID:integer; //条目编号
Content:string; //条目内容
SendTime:TDateTime; //发送时间
end;var CmdBuffer:Array of CmdBuffer_Record;现在我要用一定时器定时检测CmdBuffer中的内容,一旦SendTime的时间与现在时间相隔6秒,那么发送一次该条目,如果超过3次,那么删除该条目(即SendTime时间与现在时间相隔18秒)不知大家有什么好的方法,希望多写点哦,多写多给分:)
解决方案 »
- 感谢jiap1723(风之谷)大哥用QQ帮我解决的问题,请进来接分!
- 历史QQ群
- delphi+dx
- 如何使用overload函数?
- 如何让DBGrid中的数据奇数行和偶数行的颜色不一样
- 用installshield打的包,如何在卸载时自动删除注册表中的键值(键值内容已修改)?
- 这是不是ADO的bug为什么我设置数据库中的字段类型无论是Numeric还是Float还是Money,小数点后面的位数为7,但和DBGrid帮定后小数点后面只
- 串口难题,请看看!先给100,不够还有。
- Delphi多层数据库问题?,请高手指教???(在线等待)
- 为什么在unit2里面不能引用unit1呢??我百思不得其解,好烦,大家要帮我啊!
- 菜鸟求救,不在同一个局域网内的两台机器,pc-1(adsl-1)想访问pc-2(adsl-2)的sql-server,应如何实现?不胜感激~~~~~~~~~
- 请教如何修改ComCtrls.pas使菜单的自动快捷键消灭
const UINT MAX_LENGTH = 100;
-> 不如用静态的数组更好 Content: array[0..MAX_LENGTH] of char;你首先要有一个大体思路
1. 定时获取 如何获取 可以用Timer或者用单独的一个线程<虽然Timer也算是一个线程> timer的使用很简单的
2. 完成你的功能需求
2.1 发送一次
2.2 超过三次,但是你靠什么去判断,所以你这里需要考虑,可以考虑用全局变量,但是我觉得
将你这个record更改一下更好
type
CmdBuffer_Record = Record
ID:integer; //条目编号
Content:string; //条目内容
SendTime:TDateTime; //发送时间
nSendTimes:UINT; // 发送次数
end;
每次发送前判断是否=3,... 就将nSendTimers+1,...总体说来不是很复杂哦。
发现需要处理的节点,即将其从原有 Array中去掉!
时钟的执行事件:执行一次检查,执行一次发送。
发现需要处理的节点,即将其从原有 Array中去掉!
时钟的执行事件:执行一次检查,执行一次发送。"
bigben2008(ben)的方法比较好
从别人软件上看到一个类似的问题,也是用这方法解决的。