首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 圖片顯示模式:居中、拉伸、平鋪實現

     編輯:Delphi

效果預覽

四種顯示模式演示

核心代碼

var
  bit: TBitmap;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Button1.Caption := '加載';
  Button2.Caption := '居中';
  Button3.Caption := '拉伸';
  Button4.Caption := '平鋪';
  bit := TBitmap.Create;
  Self.Brush.Bitmap := nil;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  bit.Free;
end;

{ 原圖繪製 (0,0) }
procedure TForm1.Button1Click(Sender: TObject);
begin
  Repaint;
  bit.LoadFromFile('C:\Temp\Test.bmp');
  Canvas.Draw(0, 0, bit);
end;

{ 居中繪製 }
procedure TForm1.Button2Click(Sender: TObject);
var
  x, y: Integer;
begin
  Repaint;
  x := (ClientWidth - bit.Width) div 2;
  y := (ClientHeight - bit.Height) div 2;
  Canvas.Draw(x, y, bit);
end;

{ 拉伸填滿客戶區 }
procedure TForm1.Button3Click(Sender: TObject);
begin
  Repaint;
  Canvas.StretchDraw(ClientRect, bit);
end;

{ 平鋪填滿 }
procedure TForm1.Button4Click(Sender: TObject);
begin
  Self.Brush.Bitmap := bit;
  Repaint;
  Self.Brush.Bitmap := nil; // 用完清理,避免影響後續繪製
end;

關鍵 API 說明

方法用途特點
Canvas.Draw(X, Y, Bitmap)原尺寸繪製需自行計算座標
Canvas.StretchDraw(Rect, Bitmap)拉伸繪製自動適應矩形區域
Brush.Bitmap := Bitmap平鋪背景配合 Repaint 自動鋪滿

窗體設計 (DFM 摘要)

object Form1: TForm1
  ClientHeight = 231
  ClientWidth = 335
  OnCreate = FormCreate
  OnDestroy = FormDestroy
  object Button1: TButton ... OnClick = Button1Click end
  object Button2: TButton ... OnClick = Button2Click end
  object Button3: TButton ... OnClick = Button3Click end
  object Button4: TButton ... OnClick = Button4Click end
end
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved