///思考一个程序,程序中有几个方案,想将这些方案通过线程初始化参数的形式传递进去,//但是这些方案的字段存在共有的,也存在不一样的:如何写呢?//比如://共有参数:
Fname:string;
FType:TSchemeType;//方案1:
procedure Run;//方案2:
procedure Car;//方案3:
procedure airLine; //线程初始化时将方案传递进去。WorkThread.Create(Scheme);     //这里的Scheme如何定义数据类型,才能兼容以上的几种方案呢?
//如果可以,请给个例子,谢谢,非常感谢。

解决方案 »

  1.   

    你不都定义TSchemeType了吗,一般来说枚举类型即可
      

  2.   

    我这上边只是个例子而已。
    具体实现的时候,不只是这三个过程。说不定有很多字段的。
    想把不同的方案内容分成不同的类来操作。然后通过一个数据类型来传入参数。相当于procedure sample(strList:TStrings);使用的时候可以传入TStringList或TStringStream类型。
      

  3.   

    建议使用TStringList带入参数。
      

  4.   

    配置的方案比较多,用TStringList不好弄。希望用自定义类的方式传入参数,在线程中再判断来处理。
      

  5.   


    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;