凹凸が切り替わるトグルボタンを作る方法
|
51 |
ToggleDownButton |
動作確認 |
Delphi2007 |
更新日 |
2008/01/29(火) |
一度押すとへこみ、もう一度押すと盛り上がる
そのままくぼんだままのDown状態になる
トグルボタンを作成するのは簡単な2つのやり方があります。
一つはSpeedButtonを使うやり方です。
SpeedButtonを次のように設定するとよいでしょう。
────────────────────
object SpeedButton1: TSpeedButton
Left = 10
Top = 10
Width = 100
Height = 30
AllowAllUp = True
GroupIndex = 1
end
────────────────────
GroupIndexは適当に他のSpeedButtonとぶつからない数にしてください。
こうすると、DownプロパティでUpDownが切り替えられますし
何も記述することなくトグルボタンが実現できます。
もう一つはCheckBoxをボタン状に変えてしまう方法です。
CheckBoxを次のように設定してFormCreateも記述してください。
────────────────────
object CheckBox1: TCheckBox
Left = 10
Top = 50
Width = 100
Height = 30
Caption = 'CheckBox1'
TabOrder = 0
end
procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(CheckBox1.Handle, GWL_STYLE,
GetWindowLong(CheckBox1.Handle, GWL_STYLE) or BS_PUSHLIKE);
end;
────────────────────
これで、CheckBox.Check := True;だと
ボタンが凹んだ状態になります。
SpeedButtonを使うとフォーカスを得られないボタンになるので
CheckBoxを使う方がWindowsとしては標準っぽくなります。
CheckBoxをトグルボタンに変更した時の動作画面です。
設計時にはこのようになっています
実行時はこのようになります。
高さが低かったのでボタンと合わせておきます。
SpeedButtonのDown状態も比較にどうぞ。
|