ステータスバーにアイコンを置きたいと思います。
そのアイコンによって何か動作を起こそうとは考えておらず、
単なる表示のみのものを考えています。
ステータスバーに、アイコンを置いているソフトをよく見かけるのですが、
どうすれば置くことができるのでしょうか。
ご教授ください。
「アイコンを置く」という表現からして
ステータスバーではなく、タスクトレイ?
(時計の隣に並ぶアイコン軍団のこと?)
そういうのは、コンポーネント化したものがあるので、拾ってきたらいいかと。
または、ここ参照して、自分でがんばる
http://madia.world.coocan.jp/delphi/Win32API/Tasktray.htm
もしくは?
procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
StatusBar.Canvas.Draw(0, 0, Image1.Picture.Bitmap);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
StatusBar1.Panels[0].Style := psOwnerDraw;
end;
こんなのもあります。
procedure TForm1.FormShow(Sender: TObject);
var
R: TRect;
begin
Statusbar1.Perform(WM_USER + 10, 0, Integer(@R));
Image1.Parent := Statusbar1;
Image1.Top := r.Top + 1;
Image1.Left := r.Left + 1;
end;
ありがとうございます。
「おっ」さん
タスクバーではなくて、ステータスバーです。勘違いさせてごめんなさい。
「deldel」さん
最初の方法で実装できました。ありがとうございました。
すいません、解決してしまいましたが、
deldelさんに質問です。
procedure TForm1.FormCreate(Sender: TObject);
begin
StatusBar1.Panels[0].Style := psOwnerDraw;
end;
は、どういう動作をするのでしょうか。
やらなくても表示されるので疑問に思いました。
あれ?そうですか?
こちらではこれをしないと表示しませんでした・・・
これは、「描画をシステムに任せず、自分で行う」といったものです。
すいません、フォームデザインのほうでそのパラメータをいじっていました。
お手数をおかけしました。
ツイート | ![]() |