お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"均等割付表示"



文字列を指定範囲に均等割り付けする関数です。


procedure EvenTextOut(TargetCanvas:TCanvas; //出力キャンバス
                      s:string;             //出力文字列
                      x,y,                  //出力左上座標
                      w:integer;            //幅
                      Option:LongInt=0);    //オプション(省略可)
var
  WS:widestring;
  ArrDx:array of integer;
  i,dx:integer;
  //R:TRect;//Clipしたいなら使う
begin
  WS:=s;
  setLength(ArrDx,Length(WS));
  dx:=w div Length(WS);
  for i:= low(ArrDx) to high(ArrDx) do ArrDx[i]:=dx;
  //R:=Rect(x,y,x+w,Y+TargetCanvas.TextHeight(s));
  ExtTextOutW(TargetCanvas.handle,X,Y,Option,
              nil{@R},PWideChar(WS),Length(WS),@ArrDx[0]);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  EvenTextOut(Canvas,'hankaku全角',100,100,400,ETO_OPAQUE+ETO_CLIPPED);
end;

しかし、なぜか、ETO_OPAQUEが利きません。
☆☆☆  かわいいコードにゃ旅をさせよう いざサンプル蔵へ!! ☆☆☆
                                 00/05/02(火) 12:29 凛(MXB01744)

Original document by 凛              氏 ID:(MXB01744)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum