delphi多线程_delphi为什么没人用了_delphi hook(3)

电脑杂谈  发布时间:2017-03-10 14:23:13  来源:网络整理

begin

FUsedTime:=FUsedTime+1;

flag:=0; // 数据准备好标志

{由于您在调试程序时没有硬件支持,所以建议您使用下面的这段程序来

模拟硬件的工作,}

for i:=0 to 9000000 do//产生迟延,

flag:=i;

if flag>0 then

begin

CollectData[FUsedTime]:=round(50.0*sin(3.1415/50*FUsedTime));

Synchronize(ShowData); //同步调用数据显示函数

end;

{实际上从硬件中采集数据最常用的是如下形式,但是这段程序正常工作需要

相应的I/O接口设支持,所以它仅共参考}

{repeat

begin

flag:=inportb($341);// 数据是否准备好标志

flag:=flag and $c0;

if (flag=0) then// 如果AD转换的数据准备好

begin

CollectData[FUsedTime]:=inportw($342);

end;

flag:=flag and $10;// 恢复数据准备好标志

end; // end while not flag=0

until(flag=0);

Synchronize(ShowData); //同步调用数据显示函数

}

end; //while FUsedtime<FPresetTime

DoTerminate;//时间到后线程终止

end;

// 在指定的画布上显示采集到的数据;

procedure TCollectDataThread.ShowData;

begin

FCanvas.Pixels[2*FUsedTime,80+CollectData[FUsedTime]]:=clRed;

end;

end.

3) 在Form的单元文件中声明变量CollTestThread:TCollectDataThread,并在Form的OnCreate事件中加入以下代码:

CollTestThread:= TCollectDataThread.Create(500,PaintBox1.Canvas);

4)在“开始采集”按钮的OnClick事件中加入以下代码:


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-36849-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 刘永飞
      刘永飞

      他的声音真的很棒

    • 李晓哲
      李晓哲

      对中国大部分地区来说问题不是环保

    • 洪皓
      洪皓

      备好导弹时刻准备着

    热点图片
    拼命载入中...