本例效果图:



代码文件:
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 定位于理论的线条的右侧。


posted on 2008-06-12 16:48  万一  阅读(2687)  评论(0编辑  收藏  举报