///思考一个程序,程序中有几个方案,想将这些方案通过线程初始化参数的形式传递进去,//但是这些方案的字段存在共有的,也存在不一样的:如何写呢?//比如://共有参数:
Fname:string;
FType:TSchemeType;//方案1:
procedure Run;//方案2:
procedure Car;//方案3:
procedure airLine; //线程初始化时将方案传递进去。WorkThread.Create(Scheme); //这里的Scheme如何定义数据类型,才能兼容以上的几种方案呢?
//如果可以,请给个例子,谢谢,非常感谢。
Fname:string;
FType:TSchemeType;//方案1:
procedure Run;//方案2:
procedure Car;//方案3:
procedure airLine; //线程初始化时将方案传递进去。WorkThread.Create(Scheme); //这里的Scheme如何定义数据类型,才能兼容以上的几种方案呢?
//如果可以,请给个例子,谢谢,非常感谢。
解决方案 »
- 进程权限提升的问题(急)
- dbgrid 小问题,请大家帮忙!谢谢
- 高手何在,不要让这种问题难倒你们,关于dbgrid的横向滚动问题
- 进货表是要做一个表好,还是多个表好??????
- 引用一个dll程序除了错,请指教。
- 急需不规则形状按钮空间(圆形和圆角矩形)
- 给dbGrid TColumn 加属性,MinWidth,MaxWidth
- 如何添加sql查询语句中计算字段的字段名
- 一个有关delphi文件操作的问题!!!
- 怎样利用DELPHI 5.0 做帮助文件(*.HLP)?
- 求 delphi7编程技巧与实例精解 源码下载
- Delphi Indy10 IdUDPServer和IdUDPClient怎么使用?
具体实现的时候,不只是这三个过程。说不定有很多字段的。
想把不同的方案内容分成不同的类来操作。然后通过一个数据类型来传入参数。相当于procedure sample(strList:TStrings);使用的时候可以传入TStringList或TStringStream类型。
type
TMyParamStru = record
RunProc: TProcedure;
OtherParam: array [0..1] of Integer;
end; TWorkThread = class(TThread)
private
FInitPm: TMyParamStru;
protected
procedrue Execute; override;
public
constructor Create(InitPm: TMyParamStru);
end;constructor TWorkThread.Create(InitPm: TMyParamStru);
begin
FInitPm:= InitPm;
inherited Create(True, True);
end;procedure TWorkThread.Execute;
begin
if Assigned(FInitPm.RunProc) then begin
FInitPm.RunProc;
end;
end;