ボタンを押し続けて数値を連続変化するには。

解決


武田  2009-03-12 22:27:38  No: 33629

皆様よろしくお願いいたします。
環境はWindowsXP Delphi6  Personalです。

TrackBarは使えない事情があります。
音量を大きくしたり小さくしたりするのをボタンでやりたいのですが
よく見る「ボタンを押し続けると連続して数値が増減する」には
どのようにすればいいのでしょうか。
いまは、下記のようにいちいちクリックを繰り返さないと変化しません。
よろしくご指導下さい。
procedure TForm1.VolumeUpMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  MasterVolume := MasterVolume +1;//増大
end;
・・・・・
MasterVolume := MasterVolume -1;//減少


Delphi大好き  2009-03-13 00:10:55  No: 33630

初心者コードですが、
以下でどうでしょうか??

例ですが、
Edit1、Timer1、Button1を配置します。
ボタンを押し続けると、Editの数値が増し続けます。
離すと、MouseUpイベントでBooleanがFalseになり、
数値のカウントがとまります。

var
  Form1: TForm1;
  setbtn:boolean=false;
  count1:integer=0;
implementation

{$R *.DFM}

procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  setbtn := false;
end;

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  setbtn := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if setbtn then begin
    count1 := count1 + 1;
    edit1.Text := inttostr(count1);
  end;
end;


武田  2009-03-13 01:18:35  No: 33631

Delphi大好き さん早速教えて頂き有り難うございました。
タイマーを使うのですか・・・・・ふむ。
こうなると、プログラミングは「アイデア」力ですね。
このことに昨日から考えトライ、考えトライ馬鹿なことをしていました。

有り難うございました。


Manbon  2009-03-13 01:59:44  No: 33632

D5ですが、TUpDownはどうでしょうか?


武田  2009-03-13 02:47:15  No: 33633

Manbonさん早速教えて頂き有り難うございました。
どうしてこのようなコントロールを思い出さなかったのが
残念です。
取り付け方法を考えて試してみます。
もともとTrackBarがつまみをつまんでスライドさせにくいから
ボタンにした経緯があります。
高さが26位ですから上下に厳しいですが、
コードが簡単になりますね。
横に寝てくれればいいですが。
でも、工夫してみます。
有り難うございました。


武田  2009-03-13 03:33:31  No: 33634

Manbonさん すみません。
TUpDownのプロパティにOrientationというのを発見しました。
従って横に寝かせることができました。

これで試してみます。
有り難うございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加