線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1024
推到 Plurk!
推到 Facebook!

誰能給我一個panel控件,像image一樣可以指定圖片的!

尚未結案
cqwty13062
一般會員


發表:2
回覆:3
積分:1
註冊:2004-10-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-13 19:49:22 IP:219.153.xxx.xxx 未訂閱
从panel继承下来的控件。谁能给我一个,谢谢!
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-13 22:59:21 IP:202.39.xxx.xxx 未訂閱
一個簡單的(只適用 Bitmap 的圖)
unit Unit4;    interface    uses
  Classes, SysUtils, Controls, ExtCtrls;    type
  TImagePanel = class(TPanel)
  private
    FImage: TImage;
  protected
    procedure Paint; override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property Image: TImage read FImage write FImage;
  end;      procedure Register;    implementation    procedure Register;
begin
  RegisterComponents('Samples', [TImagePanel]);
end;    constructor TImagePanel.Create(AOwner: TComponent);
begin
  inherited;      FImage := TImage.Create(Self);
end;    destructor TImagePanel.Destroy;
begin
  if Assigned(FImage) then
    FreeAndNil(FImage);      inherited;
end;    procedure TImagePanel.Paint;
begin
  inherited;      if Assigned(FImage.Picture) then
    Canvas.StretchDraw(ClientRect, FImage.Picture.Bitmap);
end;    end.
-- QBQ: 我能做什麼?
cqwty13062
一般會員


發表:2
回覆:3
積分:1
註冊:2004-10-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-14 04:00:09 IP:219.153.xxx.xxx 未訂閱
大大,你给我的代码只能装载bmp,不能装载jbp文件。还有就是运行的时候看不到图片啊,到底怎么回事?谢谢
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-14 08:01:01 IP:202.39.xxx.xxx 未訂閱
加入 Jpeg/Jpg 部份
unit ImagePanel;    interface    uses
  Classes, SysUtils, Controls, ExtCtrls, Graphics, Jpeg;    type
  TImagePanel = class(TPanel)
  private
    FImage: TImage;
  protected
    procedure Paint; override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property Image: TImage read FImage write FImage;
  end;      procedure Register;    implementation    procedure Register;
begin
  RegisterComponents('Samples', [TImagePanel]);
end;    constructor TImagePanel.Create(AOwner: TComponent);
begin
  inherited;      FImage := TImage.Create(Self);
end;    destructor TImagePanel.Destroy;
begin
  if Assigned(FImage) then
    FreeAndNil(FImage);      inherited;
end;    procedure TImagePanel.Paint;
var
  jpg: TJpegImage;
  bmp: TBitmap;
begin
  inherited;      if Assigned(FImage.Picture) then
  begin
    if FImage.Picture.Graphic is TBitmap then
      Canvas.StretchDraw(ClientRect, FImage.Picture.Bitmap);        if FImage.Picture.Graphic is TJPegImage then
    begin
      jpg := TJpegImage.Create;
      try
        jpg.Assign(FImage.Picture.Graphic);            bmp := TBitmap.Create;
        try
          bmp.Height := FImage.Height;
          bmp.Width := FImage.Width;
          bmp.Assign(jpg);              Canvas.StretchDraw(ClientRect, bmp);
        finally
          bmp.Free;
        end;
      finally
        jpg.Free;
      end;
    end;
  end;
end;    end.
您是動態 create TImagePanel 的嗎? 如果是的話, 看不到圖片的原因也許是沒指定 Parent 屬性 使用方式:
var
  ip: TImagePanel;
begin
  ip := TImagePanel.Create(Form1);
  ip.Parent := Form1;
  ip.Left := 30;
  ip.Top := 60;
  ip.Height := 120;
  ip.Width := 120;
  //ip.Image.Picture.LoadFromFile('C:\xx.bmp');
  ip.Image.Picture.LoadFromFile('C:\xx.jpg');
end;
-- QBQ: 我能做什麼?
系統時間:2024-05-12 20:39:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!