首先创建一个线程有两种方法:
    1.Delphi XE7中:
    打开’File’菜单—‘New’—‘Other’—‘Delphi Project’—‘Delphi Files’—‘Thread Object’

    type
    TTestThread = class(Thread)
    privete
    { privete declartions}
    protected
    procedure Execute; override;
    procedure GiveAnswer;
    end;

    procedure TTestThread.Execute;
    var
    i: integer;
    begin
    FreeOnTerminate := true; //在线程终止时会自动清除所有线程对象
    for i := 0 to 20000 then
    begin
    //do something
    if Terminate then Break; //在执行线程时,线程会反复检查Terminate的值,所以这个可以用在中途结束线程
    end;
    Synchronize(GiveAnswer); //这个是作用在主线程的一个过程
    end;

    procedure TTestThread.GiveAnswer;
    begin
    MainForm.Lable.Caption := ‘就是吊!’;
    end;

    比如此时在主线程当中相应
    procedure SomeButtonClick(sender: TObject);
    var
    TemThread: TTestThread;
    begin
    TemThread := TTestThread.create(false);
    //false是指当执行create是,线程会自动执行Execute(),否则需调用TThread中Resume()来唤醒线程
    end;