1.Tcolorform  的createwithcolor应注意是重载tform.create,
2.在调用时直接写
  colorFrom:=tcolorform.create(color,self)

解决方案 »

  1.   

    //不能这样重载Create
    //constructor createwithcolor (value:pointer;owner:Tcomponent);
    //你若要给Tcolorform传递一个参数,可以在Tcolorform建立一个公有方法//定义:
      public
        //Error:constructor createwithcolor (value:pointer;owner:Tcomponent);
        procedure ShowColor(var Value: Pointer);
      end;
    //实现
    procedure Tcolorform.ShowColor(var Value: Pointer);
    begin
      FColor := Value;
      String(FColor^) := '';
      ShowModal;
    end;//在ResultForm中的GetColor可改为如下
    procedure Tresultsform.GetColor(PColor: Pointer);
    var
      ColorForm: TColorForm;
    begin
      ColorFrom:= TColorForm.Create(Application) ;
      ColorForm.ShowColor(color);
    end;
      

  2.   

    另外你可以参考一下例子程序:Demos\db\mastapp
      

  3.   

    非常感谢ghz2000的指点,已经解决!
    解决过程如下:
    1。Tcolorform  的createwithcolor声明改为:
    constructor createwithcolor (value:pointer;owner:Tcomponent);overload;
    2.createwithcolor过程定义该为:
    constructor TColorForm.createwithcolor (Value: Pointer; Owner: TComponent);
    begin
      inherited create (owner);
      FColor := Value;
      String(FColor^) := '';
    end;
    3.在调用时不能直接写
      colorFrom:=tcolorform.create(color,self) 
     而要写成:colorform:=Tcolorform.createwithcolor(pcolor,self);我想请教ghz2000,如何操作才能在调用时可用:colorform:=tcolorform.create(pcolor,self); 请指点?