皆様よろしくお願いいたします。
環境はWindowsXP Delphi6 Personalです。
TrackBarは使えない事情があります。
音量を大きくしたり小さくしたりするのをボタンでやりたいのですが
よく見る「ボタンを押し続けると連続して数値が増減する」には
どのようにすればいいのでしょうか。
いまは、下記のようにいちいちクリックを繰り返さないと変化しません。
よろしくご指導下さい。
procedure TForm1.VolumeUpMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
MasterVolume := MasterVolume +1;//増大
end;
・・・・・
MasterVolume := MasterVolume -1;//減少
初心者コードですが、
以下でどうでしょうか??
例ですが、
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;
Delphi大好き さん早速教えて頂き有り難うございました。
タイマーを使うのですか・・・・・ふむ。
こうなると、プログラミングは「アイデア」力ですね。
このことに昨日から考えトライ、考えトライ馬鹿なことをしていました。
有り難うございました。
D5ですが、TUpDownはどうでしょうか?
Manbonさん早速教えて頂き有り難うございました。
どうしてこのようなコントロールを思い出さなかったのが
残念です。
取り付け方法を考えて試してみます。
もともとTrackBarがつまみをつまんでスライドさせにくいから
ボタンにした経緯があります。
高さが26位ですから上下に厳しいですが、
コードが簡単になりますね。
横に寝てくれればいいですが。
でも、工夫してみます。
有り難うございました。
Manbonさん すみません。
TUpDownのプロパティにOrientationというのを発見しました。
従って横に寝かせることができました。
これで試してみます。
有り難うございました。
ツイート | ![]() |