大家有没有做过用线程来代替一些TIMER的操作呀,若有请说明一下,或者EMAIL给我.
我的EMAIL: [email protected]
我的EMAIL: [email protected]
解决方案 »
- IHtmlFramesCollection2为何得不到iframe得内容呢
- Delphi中如何調用onclose事件?
- 求职(Delphi软件开发)
- 这个程序怎么才可以用成多线程实现?
- 一段登陆验证服务器需要的加密解密过程,c语言的东西,帮忙翻译成delphi的,要注释
- 如何判断TreeView为空??? 100大分相赠 线上等,
- 做过分布式三层数据库系统编程的高手请进。谢谢。分不够还有。
- 窗体共用
- 使用oracle8.16的c/s数据库应用程度发布要哪些文件?
- ado组件里的RDSConnection与ADOConnection有何区别?分别用在什么情况下?在局域网中和internet中,机器名都是怎样的?
- 怎样在delphi7 下编译pascal 程序呀! 第一次用的说.
- Dephi 7下如何新建一个corba对象?
procedure TMainForm.Timer1Timer(Sender: TObject);
var
RecMsg:pchar;
begin
GetMem(RecMsg,256);
if GetMsg(ComX, RecMsg) then
begin
Memo1.Lines.Append('收到:'+Trim(String(RecMsg)));
ADOQuery9.Close;
ADOQuery9.SQL.Clear;
ADOQuery9.SQL.Add('select 联系人,手机 from 通讯录');
ADOQuery9.SQL.Add('where Trim(手机)='+#39+copy(RecMsg,1,11)+#39);
ADOQuery9.Open;
if ADOQuery9.RecNo>0 then
Memo1.Lines.Append('姓名为:'+ADOQuery9.FieldByName('联系人').AsString);
else
Memo1.Lines.Append('姓名为: NIL ');
end;
end;
另外定时器的时间分辨率大约是55ms,将其定时间隔设的过小没有意义。
我开始也是你那么认为的,可我做了试验发现我错了。
我的timer的时间间隔设为10s,在ontime里写了如下语句:
sleep(30000);
showmessage("adadfasdfasdfasd");
结果sleep执行完后,showmessage就没弹出,有跳到ontime里了
不知道我这种测试方法对不对楼主,线程使用的方法还是找书看看吧,我水平低,我是说不清楚的。
在timer1timer()中,创建一个mythread的实例就可以了,剩下的事情交给mythread去做。
begin
memo1.Lines.Add('dasfsdafsdf');
sleep(10000);
application.ProcessMessages;
end;
unit Unit1;interfaceuses
Classes, Windows, Messages;type
TMyThread = class(TThread)
private
{ Private declarations }
procedure MessageMyBox;
protected
procedure Execute; override;
end;implementation
{ TMyThread }procedure TMyThread.Execute;
begin
{ Place thread code here }
Synchronize(MessageMyBox);
end;procedure TMyThread.MessageMyBox;
var
RecMsg:pchar;
begin
GetMem(RecMsg,256);
if GetMsg(ComX, RecMsg) then
begin
Memo1.Lines.Append('收到:'+Trim(String(RecMsg)));
ADOQuery9.Close;
ADOQuery9.SQL.Clear;
ADOQuery9.SQL.Add('select 联系人,手机 from 通讯录');
ADOQuery9.SQL.Add('where Trim(手机)='+#39+copy(RecMsg,1,11)+#39);
ADOQuery9.Open;
if ADOQuery9.RecNo>0 then
Memo1.Lines.Append('姓名为:'+ADOQuery9.FieldByName('联系人').AsString);
else
Memo1.Lines.Append('姓名为: NIL ');
end;
end;
end.
我的EMAIL: [email protected]
我的EMAIL: [email protected]
谢谢: Fangyuanshan(远山)
谢谢: 楼主!