フォームの色を変更するには?


メルモ  2006-04-19 21:22:52  No: 21126

タイトルどおりなのですが
フォームの色を変更したいのですがどうすればよいのでしょうか?

現在フォームに TMainMenu コンポーネントを貼り付けています。
この TMainMenu で設定したキャプションの表示を「白」で表示し、
それ以外のフォームの部分を[黒]にしたいのですが
どうすればよいのでしょうか?


deldel  2006-04-19 22:05:58  No: 21127

こういうことですか?

MainMenu1 の OwnerDraw は True にしておく。

procedure TForm1.FormCreate(Sender: TObject);
begin
  Color := clBlack;
end;

procedure TForm1.AAA1DrawItem(Sender: TObject; ACanvas: TCanvas;
  ARect: TRect; Selected: Boolean);
begin
  ACanvas.Brush.Color := clWhite;
  ACanvas.FillRect(ARect);

  ACanvas.TextOut(ARect.Left + 3, ARect.Top + 3, AAA1.Caption);
end;


メルモ  2006-04-19 23:35:39  No: 21128

deldelさん、すみません。
書き方が不十分のようですね。
やりたいことは
表示される文字のフォントを白にして
フォームの全てを黒い状態にしたいのです。

Form1.Color := clBlack;
この場合はフォームのCanvas上といえばいいのでしょうか?
中身だけが黒くなりますよね。
そうじゃなくてフォーム全てが黒の四角形で表示したいのです。


igy  2006-04-19 23:42:57  No: 21129

procedure TForm1.FormCreate(Sender: TObject);
begin
    BorderStyle := bsNone;
    Color := clBlack;
end;

ですか?


メルモ  2006-04-19 23:43:43  No: 21130

ちょっと調べてみました。
参考例になるかどうかわかりませんが

楕円形のフォームを作ろうとすれば
Create 部で  CreateEllipticRgn を使えばできるようです。
このようなコマンドを使ってフォームの端から端まで
全てが真っ黒で、文字だけが白く表示されるように
したいのです。
※CreateEllipticRgn 以外にどのような関数があるのかも知りたいです。


メルモ  2006-04-19 23:50:11  No: 21131

igy さんどうもありがとうございます。
試してみました。

メインメニューの表示されているバーのところ(上部)が
clBtnFace で表示されます。

現在は、MainMenu の Item に 「終了」を追加してます。
この終了の文字だけを白で表示したいのです。

よろしくお願いします。

えっと、この方法で、同じ処理を行うとすれば
MainMenuを使わずに TLabel で表示して OnClick で
終了処理させれば可能でした。
しかし、やはりMainMenu で処理できるようにしたいのですが・・・


メルモ  2006-04-19 23:53:06  No: 21132

>CreateEllipticRgn

すみません。完全に違うみたいですね。
これって、見える範囲をマスクしているような感じですね
フォームを変更するわけではないようです。


deldel  2006-04-20 00:42:34  No: 21133

delphiじゃないですが・・・
こういうこと?

http://homepage2.nifty.com/DSS/VCPP/MFC/Window/Window3DHide.htm


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

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






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