请问我下面的画图代码放在线程里应该怎么执行?就是我一点击某个按钮,就开始在image1上画一页的图形。请用代码示例,画完后结束线程。画图代码如下:
             
            for i := 0 to 2999 do
            begin
               LineTo(i,y1);
               MoveTo(i+1,y2);
               y1 := y2;
            end;
放在线程里的哪个地方呢?本人对线程还不太了解,最好用代码,谢谢各位大虾了。

解决方案 »

  1.   

    C:\Program Files\Borland\Delphi7\Demos\Threads
      

  2.   

    我是在线程中调用的函数  
    //检测线程定义开始
      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;你可以直接放在线程里
      

  3.   

    unit MyThrd;interfaceuses
      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;