|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"枠で囲まれた文字"
■説明
フォームに枠付き文字を表示させるサンプルです。
Form1 に Button1 を配置して、Button1 の OnClick イベントを以下
のようにして下さい。
■サンプルコード
//=====================================================================
procedure TForm1.Button1Click(Sender: TObject);
var
Rect : TRect;
W, H : Integer;
Txt : String;
Rgn : HRGN;
begin
Txt := '枠文字!';
Rect := ClientRect;
with Canvas do begin
with Font do begin
Name := 'MS P明朝'; Size := 78;
Style := Style + [fsBold];
end;
W := TextWidth( Txt ); H := TextHeight( Txt );
with Rect do begin
TopLeft := Point((Right - Left - W ) div 2,
( Bottom - Top - H ) div 2 );
BottomRight := Point( Left + W, Top + H );
end;
SetBkMode( Handle, TRANSPARENT );
BeginPath( Handle );
DrawText( Handle, PChar( Txt ), -1, Rect,
DT_SINGLELINE or DT_VCENTER or DT_CENTER );
EndPath( Handle );
Rgn := PathToRegion( Handle ); //Path から Region を作成
try
if SelectClipRgn( Handle, Rgn ) <= NULLREGION then Exit;
Brush.Color := clAqua;//文字色
FillRect( Rect );
Brush.Color := clBlue;//枠の色
FrameRgn( Handle, Rgn, Brush.Handle, 1, 1 ); //Region の周りに
//ここで枠線の幅を指定_/~~~~ 境界を描きます。
SelectClipRgn( Handle, 0 );
finally
DeleteObject( Rgn );
end;
end;
end;
//=====================================================================
98/03/13(金) 00:45 Fermion(KHF03264)
Original document by Fermion 氏 ID:(KHF03264)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|