タイトルどおりなのですが
フォームの色を変更したいのですがどうすればよいのでしょうか?
現在フォームに TMainMenu コンポーネントを貼り付けています。
この TMainMenu で設定したキャプションの表示を「白」で表示し、
それ以外のフォームの部分を[黒]にしたいのですが
どうすればよいのでしょうか?
こういうことですか?
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;
deldelさん、すみません。
書き方が不十分のようですね。
やりたいことは
表示される文字のフォントを白にして
フォームの全てを黒い状態にしたいのです。
Form1.Color := clBlack;
この場合はフォームのCanvas上といえばいいのでしょうか?
中身だけが黒くなりますよね。
そうじゃなくてフォーム全てが黒の四角形で表示したいのです。
procedure TForm1.FormCreate(Sender: TObject);
begin
BorderStyle := bsNone;
Color := clBlack;
end;
ですか?
ちょっと調べてみました。
参考例になるかどうかわかりませんが
楕円形のフォームを作ろうとすれば
Create 部で CreateEllipticRgn を使えばできるようです。
このようなコマンドを使ってフォームの端から端まで
全てが真っ黒で、文字だけが白く表示されるように
したいのです。
※CreateEllipticRgn 以外にどのような関数があるのかも知りたいです。
igy さんどうもありがとうございます。
試してみました。
メインメニューの表示されているバーのところ(上部)が
clBtnFace で表示されます。
現在は、MainMenu の Item に 「終了」を追加してます。
この終了の文字だけを白で表示したいのです。
よろしくお願いします。
えっと、この方法で、同じ処理を行うとすれば
MainMenuを使わずに TLabel で表示して OnClick で
終了処理させれば可能でした。
しかし、やはりMainMenu で処理できるようにしたいのですが・・・
>CreateEllipticRgn
すみません。完全に違うみたいですね。
これって、見える範囲をマスクしているような感じですね
フォームを変更するわけではないようです。
delphiじゃないですが・・・
こういうこと?
http://homepage2.nifty.com/DSS/VCPP/MFC/Window/Window3DHide.htm
ツイート | ![]() |