线程查询如何得到结果!我用TCLIENTDATA在线程里创建!得到结果后不知道如何放到主线程中去!我的主线程也有也ClientData!求个思路(100分)

  • 主题发起人 主题发起人 chinanbzxx
  • 开始时间 开始时间
C

chinanbzxx

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用Tstringgird显示结果!!!,
 
可这样做:
1。窗体类中:
const
WM_REFRESH_DATA = WM_USER + 1;
type
TMainForm = class(TForm)
...
private
procedure WmRefreshData(var Message: TMessage);
message WM_REFRESH_DATA;
public
FDeltaVar: OleVariant;
end;

...
procedure TMainForm.WmRefreshData(var Message: TMessage);
begin
ClientDataSet_Main.Data := FDeltaVar;
...
end;

2。线程中:
MainForm.FDeltaVar := ClientDataSet_Thread.Data;
PostMessage(MainForm.Handle, WM_REFRESH_DATA, 0, 0);
//如果需要同步等待可改用SendMessage
//SendMessage(MainForm.Handle, WM_REFRESH_DATA, 0, 0);
//也可以用Synchronize进行同步
直接写ClientDataSet_Main.Data := ClientDataSet_Thread.Data是会出问题的。
 
to huzzz 直接写ClientDataSet_Main.Data := ClientDataSet_Thread.Data是会出问题的。为啥会出问题!你的msn多少我要加你!你太厉害了
 
使用TThreadList保存结果在主线程中调用显示,最简单
 
后退
顶部