请问我下面的画图代码放在线程里应该怎么执行?就是我一点击某个按钮,就开始在image1上画一页的图形。请用代码示例,画完后结束线程。画图代码如下:
for i := 0 to 2999 do
begin
LineTo(i,y1);
MoveTo(i+1,y2);
y1 := y2;
end;
放在线程里的哪个地方呢?本人对线程还不太了解,最好用代码,谢谢各位大虾了。
for i := 0 to 2999 do
begin
LineTo(i,y1);
MoveTo(i+1,y2);
y1 := y2;
end;
放在线程里的哪个地方呢?本人对线程还不太了解,最好用代码,谢谢各位大虾了。
解决方案 »
- 高手或做过的人请帮帮忙,用什么GRID或是别的控件可以作出这样的复合报表(内附报表图),其中人员和线路还有线路下面的小类(主、从、电
- 请问如何在delphi中制作像cmd那样的窗口!
- 如何用UDP把一台在上Internet的主机数据传到另一台通过代理服务器上网的计算机中?高手请赐教啊!
- 一个与activeX有关的问题!
- Delphi操作Excel错误:命令不可用,因为使用该应用程序的许可已经过期
- 用Chart来显示数据
- 寻找比Delphi6中ActionManger的更好的控件
- 请教一个非常古老的问题,如何判断EDIT中的字符是汉字(英文)还是数字,这不简单的?
- 在InterBase的表中如何增加自动加1字段?
- Delphi6比Delphi5增加了什么功能?减去了什么功能?Delphi5的控件、程序在Delphi6能否正常运行?
- 求助,请各位大哥帮我看看,我是错误在哪里呢?谢谢!
- 如何在delphi中备份和恢复SQL sever中的数据库
//检测线程定义开始
Test_thread=CLASS(TThread)
private
//count:Integer;
protected
procedure Execute;override;
public
constructor create();
procedure show;
procedure gas;
procedure smoke;
procedure speed;
procedure lamplight;
procedure sound;
procedure sideslip;
procedure axlegross;
procedure brake;
end;
函数
procedure Test_thread.lamplight;
begin
with form1 do
begin
showmessage('灯光检测');
//sleep(2000);
with ADOQuery1 do
begin
FieldByName('Linint').AsFloat:=100.4;
FieldByName('Loutint').AsFloat:=100.4;
FieldByName('Linud').AsFloat:=100.4;
FieldByName('Loutud').AsFloat:=100.4;
FieldByName('Linfr').AsFloat:=100.4;
FieldByName('Loutlr').AsFloat:=100.4;
FieldByName('Rinint').AsFloat:=100.4;
FieldByName('Routint').AsFloat:=100.4;
FieldByName('Rinud').AsFloat:=100.4;
FieldByName('Routud').AsFloat:=100.4;
FieldByName('Rinfr').AsFloat:=100.4;
FieldByName('Routlr').AsFloat:=100.4;
end;
//光强
with image6 do
begin
Canvas.Pen.Color:=clblue;
image6.Canvas.MoveTo( 50, 0);
Canvas.LineTo(50,110);
image6.Canvas.MoveTo( 50, 10);
Canvas.LineTo(55,10);
image6.Canvas.MoveTo( 50, 20);
Canvas.LineTo(55,20);
image6.Canvas.MoveTo( 50, 30);
Canvas.LineTo(55,30);
image6.Canvas.MoveTo( 50, 40);
Canvas.LineTo(55,40);
image6.Canvas.MoveTo( 50, 50);
Canvas.LineTo(55,50);
image6.Canvas.MoveTo( 50, 60);
Canvas.LineTo(55,60);
image6.Canvas.MoveTo( 50, 70);
Canvas.LineTo(55,70);
image6.Canvas.MoveTo( 50,80);
Canvas.LineTo(55,80);
image6.Canvas.MoveTo( 50, 90);
Canvas.LineTo(55,90);
image6.Canvas.MoveTo( 50, 100);
Canvas.LineTo(55,100);
Canvas.Pen.Color:=clblue;
image6.Canvas.MoveTo( 0,50);
Canvas.LineTo(110,50);
image6.Canvas.MoveTo( 10,50);
Canvas.LineTo(10,55);
image6.Canvas.MoveTo( 20,50);
Canvas.LineTo(20,55);
image6.Canvas.MoveTo( 30,50);
Canvas.LineTo(30,55);
image6.Canvas.MoveTo( 40,50);
Canvas.LineTo(40,55);
image6.Canvas.MoveTo( 50,50);
Canvas.LineTo(50,55);
image6.Canvas.MoveTo( 60,50);
Canvas.LineTo(60,55);
image6.Canvas.MoveTo( 70,50);
Canvas.LineTo(70,55);
image6.Canvas.MoveTo( 80,50);
Canvas.LineTo(80,55);
image6.Canvas.MoveTo( 90,50);
Canvas.LineTo(90,55);
image6.Canvas.MoveTo( 100,50);
Canvas.LineTo(100,55);
Canvas.Font.Color:=clRed;
Canvas.TextOut(55,5,'4');
Canvas.TextOut(35,85,'-4');
Canvas.TextOut(5,35,'-4');
Canvas.TextOut(85,55,'4');
Shape1.Left:=47;
Shape1.Width:=25;
Shape1.Top:=64;
Shape1.Visible:=True;
edit8.Text:='100';
showmessage('光强检测成功!');
end;
with image7 do
begin
Canvas.Pen.Color:=clblue;
image7.Canvas.MoveTo( 50, 0);
Canvas.LineTo(50,100);
image7.Canvas.MoveTo( 50, 10);
Canvas.LineTo(55,10);
image7.Canvas.MoveTo( 50, 20);
Canvas.LineTo(55,20);
image7.Canvas.MoveTo( 50, 30);
Canvas.LineTo(55,30);
image7.Canvas.MoveTo( 50, 40);
Canvas.LineTo(55,40);
image7.Canvas.MoveTo( 50, 50);
Canvas.LineTo(55,50);
image7.Canvas.MoveTo( 50, 60);
Canvas.LineTo(55,60);
image7.Canvas.MoveTo( 50, 70);
Canvas.LineTo(55,70);
image7.Canvas.MoveTo( 50,80);
Canvas.LineTo(55,80);
image7.Canvas.MoveTo( 50, 90);
Canvas.LineTo(55,90);
image7.Canvas.MoveTo( 50, 100);
Canvas.LineTo(55,100);
Canvas.Pen.Color:=clblue;
image7.Canvas.MoveTo( 0,50);
Canvas.LineTo(110,50);
image7.Canvas.MoveTo( 10,50);
Canvas.LineTo(10,55);
image7.Canvas.MoveTo( 20,50);
Canvas.LineTo(20,55);
image7.Canvas.MoveTo( 30,50);
Canvas.LineTo(30,55);
image7.Canvas.MoveTo( 40,50);
Canvas.LineTo(40,55);
image7.Canvas.MoveTo( 50,50);
Canvas.LineTo(50,55);
image7.Canvas.MoveTo( 60,50);
Canvas.LineTo(60,55);
image7.Canvas.MoveTo( 70,50);
Canvas.LineTo(70,55);
image7.Canvas.MoveTo( 80,50);
Canvas.LineTo(80,55);
image7.Canvas.MoveTo( 90,50);
Canvas.LineTo(90,55);
image7.Canvas.MoveTo( 100,50);
Canvas.LineTo(100,55);
Canvas.Font.Color:=clRed;
Canvas.TextOut(55,5,'4');
Canvas.TextOut(35,85,'-4');
Canvas.TextOut(5,35,'-4');
Canvas.TextOut(85,55,'4');
Shape2.Left:=166;
Shape2.Width:=25;
Shape2.Top:=65;
Shape2.Visible:=True;
edit9.Text:='3';
showmessage('光偏检测成功!');
end;
end;
end;你可以直接放在线程里
Classes;Type
TTextThread = Class(TThread)
Private
//.......
Protected
Procedure Execute; Override;
end;implementationuses
SysUtils,MainUnit;Procedure TTextThread.Execute;
begin
FreeOnTerminate := True;
//你需要完成的工作写在下面,比如你的那些循环;
end;end. //Mythrd单元结束然后在主程序单元中(记得在主程序单元中 uses MyThrd):
Procedure DoSomeThing;
var
MyThread: TTextThread;
begin
MyThread := TTextThread.Create(False);
end;