怎樣用線程控制Form 中的暫停和停止按鈕???


Form1的程序寫在Unit1中,線程程序在Unit2中,我已經在unit2中引用了unit1,在unit1中引用了unit2,而且沒有造成循環引用。但在unit2的線程執行程序中,仍然不能識別unit1中的控件,例如,Tshape,sql語句也不能識別,請教大家,這是怎么回事?怎樣解決才好?有沒有其它更好的控制暫停和停止的辦法?

請大家指點詳細點,我是個新手!

11 个解决方案

#1


把線程寫到unit1中。

#2


Delphi中在interface和impletement后都可以引用單元,不過好像有點區別,你是不是都在interface下引用了,一般interface下引用的單元中可能包含了需要使用的數據類型,如果只是個普通的Form只要在inpletement下引用一下就可以了

個人意見

#3


我試過了,在interface中引用會造成循環引用

線程寫到unit1中,怎么寫?能不能指點一下

#4


和你在Unit2中一樣的:
在Unit1中:
type
  TForm1=class(TForm)
   .....
  end;
//定義一個線程
  TAccountThread=class(TThread)
  private
    { Private declarations }
  protected
    procedure Execute; override;
  end;
...
var 
 AccountThread:TAccountThread;
...........
 AccountThread:=TAccountThread.Create(False);
.....
procedure TAccountThread.Execute;
begin
 //yourcode
endl;

#5


先謝過風兄弟,我試試!

#6


程序報錯,說procedure TAccountThread.Execute 重復聲明redeclare

#7


Tshape控件可以識別,但sql的query還是不認,兄弟們,幫幫忙啊!!有急!

#8


會不會是你Query有問題呀,
什么碼都沒有,好難幫的啦,

#9


是這樣的: 我在做啟動按鈕時,編譯連接執行已經通過(沒有用線程),現在老板要求增加暫停和停止功能,我就把‘啟動’里邊的程序放在線程的執行execute中,通過線程的suspend和terminate來實現暫停和停止,結果就不認下列語句:
1。 Tshape(findcomponent('string'))中的功能函數findcomponent

2。 with query1 do
    begin
    end;
    報錯: 沒有定義query1,但query1已經在unit1中定義了

#10


68816088我的QQ

#11


好的,多謝!

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com