チェックボックスなら
if CheckBox1.Checked then
begin
処理
end
else
begin
処理
end
でできるんですが、buttonの場合はどうなるのでしょうか?
変数なりなりなんなり定義して今までやっていましたが、他に方法あるのかな?
どのように違う処理をしたいのかにもよると思いますが。違う処理をするために条件があるはずですから、分岐できると思います。
ちらつき防止隊員さん、ありがとうございます。
>変数なりなりなんなり定義して今までやっていましたが、他に方法あるのかな?
この方法のヒントを教えてもらえますか?
本当に申し訳ないです・・・(^^;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private 宣言 }
Mode: Integer; // <=== 追加
public
{ Public 宣言 }
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Mode := 1;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if Mode = 0 then
begin
// Modeが0のときの処理
end
else
begin
// それ以外のときの処理
end;
end;
ボタンのTagプロパティを使う方法もあります。
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Tag := 1;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if TButton(Sender).Tag = 0 then
begin
// Tagが0のときの処理
end
else
begin
// それ以外のときの処理
end;
end;
>この方法のヒントを教えてもらえますか?
既にレスがありますね。
ようするに、チェックボックスのCheckedプロパティは Boolean型の変数で、それがチェックされているか、されていないかで条件分岐するわけですよね?
ボタンはそういったプロパティがないわけですから、なら、適当に変数を定義して・・・、とigyさんが書いてあるとおりなわけです。
ただ、おみくじみたいに、ランダムに処理を違えたければ、Delphiにもランダムな整数だか実数だかを生成する関数かなんかあるでしょう。
関数の名前は知りませーん
こんなのもありますよ。
procedure TForm1.Button1Click(Sender: TObject);
const
bo: Boolean = False;
begin
bo := not bo;
if bo then begin
Windows.Beep($AAA, 100);
end else begin
Windows.Beep($FFF, 100);
end;
end;
アラマンチュー!
ボタン2つ使って
Visibleで切り替えて表示する方法もあるよのさ!
procedure TForm1.Button1Click(Sender: TObject);
begin
<< 1の処理 >>
Visible := false;
Button2.Visible := true;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
<< 2の処理 >>
Visible := false;
Button1.Visible := true;
end;
ヘンシ〜ン!
SetWindowLong(CheckBox1.Handle, GWL_STYLE, GetWindowLong(CheckBox1.Handle, GWL_STYLE) or BS_PUSHLIKE);
こんなにたくさんのサンプルを出していただいてありがとうございます!
私も微力ながら、このBBSの質問に答えるようになろうとおもいます!
本当にありがとうございました。感謝です
ツイート | ![]() |