TGPTextureBrush.Create( image: TGPImage; {用于画刷的图像} wrapMode: TWrapMode = WrapModeTile {平铺样式, 是可选值, 见下表} );本例效果图:
代码文件:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) ComboBox1: TComboBox; procedure FormCreate(Sender: TObject); procedure FormPaint(Sender: TObject); procedure ComboBox1Change(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses GDIPOBJ, GDIPAPI, TypInfo; procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin for i := 0 to 4 do ComboBox1.Items.Add(GetEnumName(TypeInfo(TWrapMode), i)); ComboBox1.ItemIndex := 0; end; procedure TForm1.FormPaint(Sender: TObject); var g: TGPGraphics; r: TGPRect; img: TGPImage; tb: TGPTextureBrush; begin g := TGPGraphics.Create(Canvas.Handle); r := MakeRect(ClientRect); img := TGPImage.Create('c:\temp\cat.png'); tb := TGPTextureBrush.Create(img); tb.SetWrapMode(TWrapMode(ComboBox1.ItemIndex)); g.FillRectangle(tb, r); img.Free; tb.Free; g.Free; end; procedure TForm1.ComboBox1Change(Sender: TObject); begin Repaint; end; end.窗体文件:
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 263 ClientWidth = 352 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False Position = poDesktopCenter OnCreate = FormCreate OnPaint = FormPaint PixelsPerInch = 96 TextHeight = 13 object ComboBox1: TComboBox Left = 242 Top = 2 Width = 107 Height = 21 ItemHeight = 13 TabOrder = 0 Text = 'ComboBox1' OnChange = ComboBox1Change end endWrapMode 选项:
Delphi | 微软 | 说明 |
---|---|---|
WrapModeTile | Tile | 平铺渐变或纹理。 |
WrapModeTileFlipX | TileFlipX | 水平反转纹理或渐变,然后平铺该纹理或渐变。 |
WrapModeTileFlipY | TileFlipY | 垂直反转纹理或渐变,然后平铺该纹理或渐变。 |
WrapModeTileFlipXY | TileFlipXY | 水平和垂直反转纹理或渐变,然后平铺该纹理或渐变。 |
WrapModeClamp | Clamp | 纹理或渐变没有平铺。 |