APIのTEXTOUT とDelphiの関数のTextOutの描画の違いとは?


Nami  2005-06-03 15:13:41  No: 15354  IP: [192.*.*.*]

APIを使用して
  var
    buf : array[0..64] of Char;
  begin
    StrPCopy(buf, 'test');
    TEXTOUT(Image.Canvas.Handle, 100, 150), buf, StrLen(buf);
  end;

と記述する方法と、Delphiの関数を使用して

    Image.Canvas.TextOut(100, 150, str);

と記述する方法では、描画される位置が異なるのはなぜでしょうか??

またまた初心者発言で申し訳ありません。
ご回答いただけたら嬉しいですm(_ _)m

編集 削除
Nami  2005-06-03 15:14:59  No: 15355  IP: [192.*.*.*]

○訂正(Line : 11)

  Image.Canvas.TextOut(100, 150, str);

ではなくて、

  Image.Canvas.TextOut(100, 150, 'test');

です。

編集 削除
にしの  2005-06-03 15:34:22  No: 15356  IP: [192.*.*.*]

試したところ、全く同じ座標に表示されています。
強いて言うならば、CanvasのTextOut関数は、APIのExtTextOut関数を使用しています。
APIのTextOutと、APIのExtTextOutとが違う動きであれば、差異が生じるかもしれません。

編集 削除
Nami  2005-06-03 16:03:23  No: 15357  IP: [192.*.*.*]

>にしの様

再びご回答ありがとうです。

そうですか…私ももう少し考えてみます。

ちなみにパフォーマンスを考慮した場合、Delphi関数を使用した方が
良いのでしょうか?

編集 削除
にしの  2005-06-03 16:31:42  No: 15358  IP: [192.*.*.*]

処理のパフォーマンスは、APIの方が良いです。
開発のパフォーマンスは、Delphi関数の方が良いです。
人それぞれだとは思います。これは個人的な感想です。

編集 削除