问题如题
解决方案 »
- 用的 cxDBLookupComboBox,ListFieldNames 设置了多个列,怎么显示其他列的值?
- access中,为什么 select top 10 * from table比select * from table还慢?
- 谢谢
- 我放了一个MediaPlayer1控件,为什么不播放?
- 用TOleContainer,保存后不能打开??(100分)
- 关于richedit控件的undo问题
- 在ExpressQuantumGrid4.2中如何设置能在底部显示统计数据之类的东东,如合计、平均值等,同时如何汉化出现的英文。
- 网络传输文件的问题
- 刚刚升了一级,体验一下一次放200分的感觉,UP有分 顺便和大家探讨一个问题(无未结帖记录)
- 一个小问题,顺便散分
- 郁闷啊,辞职还真麻烦
- 如何检测TEdit控件中录入的内容为数字?
出了线程就没用了。
有点像一个函数中定义的变量,在这个函数之外就没用了。。开发人员指南上我记得有一个例子的。
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TMainForm = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
MainForm: TMainForm;implementation{$R *.DFM}{ NOTE: Change GlobalStr from var to threadvar to see difference }
var
//threadvar
GlobalStr: string;type
TTLSThread = class(TThread)
private
FNewStr: String;
protected
procedure Execute; override;
public
constructor Create(const ANewStr: String);
end;procedure SetShowStr(const S: String);
begin
if S = '' then
MessageBox(0, PChar(GlobalStr), 'The string is...', MB_OK)
else
GlobalStr := S;
end;constructor TTLSThread.Create(const ANewStr: String);
begin
FNewStr := ANewStr;
inherited Create(False);
end;procedure TTLSThread.Execute;
begin
FreeOnTerminate := True;
SetShowStr(FNewStr);
SetShowStr('');
end;procedure TMainForm.Button1Click(Sender: TObject);
begin
SetShowStr('Hello world');
SetShowStr('');
TTLSThread.Create('Dilbert');
Sleep(100);
SetShowStr('');
end;end.