我继承的是TPanel类,我在Imagepanel类中增加了一个ImageFileName字段来接受输入图片的路径。unit Imagepanel;interfaceuses
  Windows, Messages, SysUtils, Classes, Controls, ExtCtrls;type
  TImagepanel = class(Tpanel)
  private
    FImage:TImage;
    FFileName:String;
    procedure SetPanelImage(Value:String);
  protected
    { Protected declarations }
  public
     constructor Create(AOwner: TComponent);
  published
    property ImageFileName:String Read FFileName Write SetPanelImage;
  end;procedure Register;implementationprocedure Register;
begin
  RegisterComponents('Custom', [TImagepanel]);
end;{ TImagepanel }constructor TImagepanel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FImage :=TImage.Create(Self);
  FImage.Align := alClient;
end;procedure TImagepanel.SetPanelImage(Value: String);
begin
  if Value ='' then Exit;
  FFileName := Value;
  FImage.Picture.LoadFromFile(Value);
end;end.

解决方案 »

  1.   

    再对问题描述做补充:
    这个组件可以安装,但是再实际使用的时候,提示TImage类找不到等。
      

  2.   

    最好在Uses中加入Graphics单元。
      

  3.   

    首先你的代码有几个问题:
    1、声明部分:constructor Create(AOwner: TComponent);override;//注意这里的override
    2、
    constructor TImagepanel.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner);
      FImage :=TImage.Create(Self);
      FImage.Parent:=self;////////注意这里,这句很重要,否者是不会显示出image来的
      FImage.Align := alClient;
    end;另一个问题是,你使用FImage.Picture.LoadFromFile(FFileName);要注意是不能直接载入jpg之类的格式的图片的,只能是bmp之类的位图文件
      

  4.   

    各位我马上我就给分了,但是我怎么能够使用Panel的事件啊,如Click等等,我这样做了以后,在OnClick中写了代码,但是就是不执行,这是为什么?
      

  5.   

    因为已经被image覆盖了,你把panel的onclick附给image的onclick应该就可以了吧