delphi.gif (306 バイト) パネル(Panel)の使い方


パネルはその上に子コントロールを置いて管理するために使用します。

 

toach.gif (917 バイト) パネルの外観を変更するには

BevelInnerやBevelOuterなどを変更することによってパネルの外観をいろいろ変更できます。

次にパネルを使ってボタンを作るサンプルを示します。パネルの文字列(Caption)は、微妙に動かせないのでLabelコントロールを貼り付けて動かしています。ボタン自体の動作は、BevelOuterプロパティを変更することにより動かします。普通のButtonコントロールは、ボタン自体の色を変えられないので、このようにPanelを使うと色つきのボタンが作れます。

unit ButtonTest;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, Button1;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Label1: TLabel;
    procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Panel1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Label1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Label1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
    Panel1.BevelOuter := bvLowered;
    Label1.Left := Label1.Left + 2;
    Label1.Top  := Label1.Top + 2;
end;

procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
    Panel1.BevelOuter := bvRaised;
    Label1.Left := Label1.Left - 2;
    Label1.Top  := Label1.Top - 2;
    Close
end;

procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
    Panel1.BevelOuter := bvLowered;
    Label1.Left := Label1.Left + 2;
    Label1.Top  := Label1.Top + 2;
end;

procedure TForm1.Label1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
    Panel1.BevelOuter := bvRaised;
    Label1.Left := Label1.Left - 2;
    Label1.Top  := Label1.Top - 2;
    Close
end;

end.