本例效果图:
代码文件:
代码文件:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) RadioGroup1: TRadioGroup; procedure FormPaint(Sender: TObject); procedure FormCreate(Sender: TObject); procedure RadioGroup1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses GDIPOBJ, GDIPAPI; procedure TForm1.FormCreate(Sender: TObject); begin with RadioGroup1 do begin Align := alBottom; Items.Add('PenAlignmentCenter'); Items.Add('PenAlignmentInset'); Columns := 2; ItemIndex := 0; end; end; procedure TForm1.FormPaint(Sender: TObject); var g: TGPGraphics; p: TGPPen; rect: TRect; begin g := TGPGraphics.Create(Canvas.Handle); g.Clear($FFFFFFFF); p := TGPPen.Create($FFEE82EE, 20); rect := ClientRect; InflateRect(rect, -50, -50); OffsetRect(rect, 0, -20); p.SetAlignment(TPenAlignment(RadioGroup1.ItemIndex)); g.DrawRectangle(p, MakeRect(rect)); p.SetColor($FF000000); p.SetWidth(1.5); g.DrawRectangle(p, MakeRect(rect)); p.Free; g.Free; end; procedure TForm1.RadioGroup1Click(Sender: TObject); begin Repaint; end; end.窗体文件:
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 198 ClientWidth = 277 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 RadioGroup1: TRadioGroup Left = 8 Top = 152 Width = 185 Height = 38 Caption = 'RadioGroup1' TabOrder = 0 OnClick = RadioGroup1Click end end画笔对齐方式:
Delphi | 微软 | 说明 |
---|---|---|
PenAlignmentCenter | Center | 指定 Pen 对象以理论的线条为中心。 |
PenAlignmentInset | Inset | 指定 Pen 被定位于理论的线条内。 |
无定义 | Left | 指定将 Pen 定位于理论的线条的左侧。 |
无定义 | Outset | 指定将 Pen 定位于理论的线条外。 |
无定义 | Right | 指定将 Pen 定位于理论的线条的右侧。 |