unit ImagePanelForActiveX; interface uses GIFImage, Graphics, Windows, SysUtils, Classes, Controls, ExtCtrls; type TImagePanelForActiveX = class(TPanel) private FImage: TImage; procedure SetPicture(Value: TPicture); function GetPicture: TPicture; protected { Protected declarations } public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure LoadFromFile(AFileName: String); published property Picture: TPicture read GetPicture write SetPicture; end; procedure Register; implementation //------------------------------------------------------------------------------ procedure TImagePanelForActiveX.SetPicture(Value: TPicture); begin FImage.Picture.Assign(Value); end; //------------------------------------------------------------------------------ function TImagePanelForActiveX.GetPicture: TPicture; begin Result := FImage.Picture; end; //------------------------------------------------------------------------------ procedure TImagePanelForActiveX.LoadFromFile(AFileName: String); var GIFImage: TGIFImage; begin if AnsiSameText(ExtractFileExt(AFileName), '.GIF') then begin GIFImage := TGIFImage.Create; try GIFImage.Animate := False; GIFImage.LoadFromFile(AFileName); FImage.Picture.Bitmap.Assign(GIFImage.Bitmap); finally GIFImage.Free; end; end else begin FImage.Picture.LoadFromFile(AFileName); end; FImage.Refresh; Width := FImage.Width; Height := FImage.Height; end; //------------------------------------------------------------------------------ constructor TImagePanelForActiveX.Create(AOwner: TComponent); begin inherited Create(AOwner); Caption := ''; Color := $00FFFFFF; DoubleBuffered := True; BevelInner := bvNone; BevelOuter := bvNone; FImage := TImage.Create(Self); FImage.Parent := Self; FImage.Enabled := False; FImage.Left := 0; FImage.Top := 0; FImage.AutoSize := True; end; //------------------------------------------------------------------------------ destructor TImagePanelForActiveX.Destroy; begin FreeAndNil(FImage); inherited Destroy; end; procedure Register; begin RegisterComponents('RealICQ UI', [TImagePanelForActiveX]); end; end.