−トップへ−

パネルコンポーネント

 パネルコンポーネントは,その上に他のコンポーネントを配置できるボードのようなものという認識ですが,私はこのコンポーネントの正しい使い方が分かりません。ただパネルコンポーネントは見た目をいろいろ変えることができるので,私はボタンとして使っていたことが多かったです。
 パネルコンポーネントのプロパティを見ていると,他のコンポーネントにない項目が並んでいます。左の図はコンポーネントの一部ですが,赤い矢印の部分を変えていくといろいろな形に変えることができます。
 その一例が右の図です。これらをうまく変更していくとよりボタンらしくなると思います。また矢印以外の項目でも見た目を変えられるところがあるかもしれません。いろいろ試してみてください。
 パネルコンポーネントで作ったボタンに動きをつけたものをファイルとして掲載しておきます。よければ試してみてください。
→ダウンロード


 次に,パネルコンポーネントを使ってメッセージボックスを作ってみたいと思います。lazarusでもボタン1つの簡単なメッセージボックスは作ることができます。その作り方は,イベントの中に次のように書くだけです。

  showmessage('lazarusのメッセージボックスです');

 これで表示されるメッセージボックスは下のようになります。
 上の図を見ると,まず気になるのは「Project1」の文字です。これはファイル名なのかもしれませんが,これを変える方法は分かりません。また文字が小さいことも気になります。
 そこで,パネルを使ってメッセージボックスを作ってみました。  ここでは元のメッセージボックスに似せて作りましたが,似せる必要はないので自由に作って構わないと思います。
 ちなみに左のメッセージボックスの黄色の部分はラベルコンポーネントでつくり,左上の×印もラベルコンポーネントで作りました。中央のメッセージはパネルコンポーネントの[Caption]に書き込み,ボタンはボタンコンポーネントです。
 メッセージはラベルコンポーネントを使うと長いメッセージも可能になり,ボタンの数も制限なく増やすことができます。
 参考のために,ソースコードも載せておきます。

//×印を押したときメッセージボックスを消す
procedure TForm1.Label2Click(Sender: TObject);
begin
  panel1.Visible := false ;
end;

//[OK]ボタンを押したときメッセージボックスを消す
procedure TForm1.Button1Click(Sender: TObject);
begin
  panel1.Visible := false ;
end;

//メッセージボックスを表示させる
procedure TForm1.Button2Click(Sender: TObject);
begin
  panel1.Left :=( form1.Width - panel1.Width ) div 2;
  panel1.top :=( form1.Height - panel1.Height ) div 2;
//上の2つは,フォームの大きさが変わったときでも,常に中央に表示できるようにするためのコードです。
  panel1.Visible := true ;
end;

 このファイルも掲載しておきます。よければご覧ください。
→ダウンロード

 パネルコンポーネントは,他にもいろいろな使い方ができるかもしれません。とりあえず思いついたものを書いてみました。

−トップへ−