多執行緒程式 |
尚未結案
|
sun_chih_yen
一般會員 發表:40 回覆:33 積分:13 註冊:2003-10-03 發送簡訊給我 |
|
azurecloud
中階會員 發表:52 回覆:108 積分:92 註冊:2003-09-04 發送簡訊給我 |
Hi, sun_chih_yen 您好:
根據我之前的經驗,除了引用 unit 1 之外,還得在 Thread 的 constructor
中把 Edit 物件傳入,其他物件也是一樣,以下是我的例子
*****************************************************************
宣告區:
type
QueryThread = class(TThread)
private
{ Private declarations }
FQuery : TQuery ;
FADOcommand : TADOcommand;
FStringgrid : TStringgrid;
FLabel : TLabel;
protected
procedure GiveAnswer; // 告訴主程式Query已完成
procedure Execute; override; // 執行Query的動作
public
constructor Create(AADOcommand : TADOCommand;AStringgrid:TStringgrid;ALabel:TLabel; AQuery :TQuery );
end;
*********************************************************************
程式區:
constructor QueryThread.Create(AADOcommand : TADOCommand;AStringgrid:TStringgrid;ALabel:TLabel;AQuery : TQuery);
begin
FQuery := AQuery ;
FADOcommand := AADOcommand;
FStringgrid := AStringgrid;
FLabel := ALabel;
inherited Create(False);
FreeOnTerminate := True;
end;
*********************************************************************
接著你在 procedure QueryThread.Execute; 方法中就可操作所傳入的物件了
例如 FLabel.caption := '我的標題';
希望對你有幫助,另外建議你在站內搜尋 Thread 和 執行緒,應該有許多的相
關文章。 ========================
我要努力向上~~[/h5]======================== |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |