お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
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