画像に文字を表示したいのですが


AS  2025-03-20 06:27:52  No: 151884

画像の中に文字を表示するために
    CanVas.TextOut(125,32,MakeSpace(90));
    CanVas.Font.color:=Clwhite;
    CanVas.TextOut(125,32,S);
    CanVas.Font.color:=ClBlack;
としていました。
これだと、画像の一部が消えるので、何とかできまいかということで質問させていただきます。
よろしくお願いします。

delphiXE5を使用しています。


igy  2025-03-21 21:38:04  No: 151887

var
  ARect: TRect;
  S: String;

SetBkMode(Canvas.Handle, TRANSPARENT);
DrawText(Canvas.Handle, PChar(S), -1, ARect, DT_SINGLELINE or DT_CENTER or DT_VCENTER);
みたいな感じでDrawTextを使うのは、いかがですか?


AS  2025-03-22 13:29:50  No: 151888

igyさん、ありがとうございます。

今、ネットで調べていますが、なかなか難しいですね。
できる限りの勉強をしてから、また質問させていただきます。


AS  2025-03-22 14:19:48  No: 151889

画像に文字を表示することはできましたが、
この文字を消す方法はあるのですか?
文字だけ消すのは無理なよう気がします。
よろしくお願いします。

   Arect:=rect(125,32,615,47);       CanVas.Font.color:=ClWhite;
    SetBkMode(Canvas.Handle, TRANSPARENT);
    DrawText(Canvas.Handle, PChar(S), -1, ARect, DT_CENTER );


igy  2025-03-22 16:38:51  No: 151890

消すというよりも、

描画する情報
・背景画像の情報
・文字列1
・文字列2
  ・
  ・
をリストなどで保持しておき、OnPaintイベントで、それらを描画するようにして、
もし、文字列1を消したい場合、そのリストから文字列1を削除して、再描画する・・
のような感じでしょうか?


AS  2025-03-23 07:43:34  No: 151895

そうですね。
試してみます。

昔のBASICにあったと思うんですが、
画像を描くスクリーンと文字を書くスクリーンを両方同時に表示するというやりかたがいいと思うんですが、
delphiではありませんかね??


AS  2025-03-23 10:21:26  No: 151898

文字を書く直前に画像を描くprocedureを置いたら、最後は文字が書かれていません。
下の今まで使ってきた方法でも文字が消えます。

Onmousemoveでやっていたのですが、Onmousemoveの終わりは何ですかね??
まあ、いろいろ試してみますが、時間がかかります。

    CanVas.TextOut(125,32,MakeSpace(90));
    CanVas.Font.color:=Clwhite;
    CanVas.TextOut(125,32,S);
    CanVas.Font.color:=ClBlack;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加