-PR-
締切済み

ボタンを押しっぱなしにした時の処理

  • 困ってます
  • 質問No.31560
  • 閲覧数1859
  • ありがとう数4
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 67% (39/58)

ボタン(TButton)を押しっぱなしにした時に、
ラベルに表示した数値を連続で上昇させる
プログラム(ゲーム機のコントローラのような)
を作りたいのですが、よろしければ方法を教えてくだい。
処理系はC++Builder5.0(Pro.)です。
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全3件)

  • 回答No.1
レベル13

ベストアンサー率 33% (427/1283)

 何かしらのグローバルクラスに、数値を保存する変数を作成して、ボタンのクリックイベントが発生した時に、そのクラスの変数をインクリメントして、ラベルに表示すればいいのでは??
補足コメント
Richi

お礼率 67% (39/58)

お返事ありがとうございました。
ボタンを連打するのではなくて、ボタンを押してから一定時間(1秒)が経過した後、押したままの状態で、ラベルの数値が一定間隔(1)ずつ上昇するというプログラムを作りたいのです。つまりクリックイベントは最初の1回しか発生しない状態です。
投稿日時 - 2001-01-23 17:29:14


  • 回答No.2
レベル13

ベストアンサー率 33% (427/1283)

補足読みました。

 えっと複雑になって、今確認出来る環境にないので、間違っているかも知れませんが...。

 どうしてもボタンコントロールでないといけないって事でよろしいのでしょうか?

 それならば、
 マウスの移動を検知するイベント(メッセージ)を拾い続けて、ボタンコントロールの枠からはみ出さない間で、且つマウスの状態を調べて、クリック状態なら、カウントアップを行う様にしてみてはどうでしょうか?

 また、1秒間隔でなら、一回カウントアップした時に、タイマを起動させてタイマアップした時に、マウスの現在位置とボタンの状態を調べて、まだボタンの上にある場合には、カウントアップする様にすれば出来ると思います。

 でも...本当は、ボタンコントロールでなく、別の適したコントロールがあると思うんだけどなぁ スピンコントロールとか....ね。
お礼コメント
Richi

お礼率 67% (39/58)

お返事ありがとうございました。
投稿日時 - 2001-01-30 00:10:18
  • 回答No.3
レベル12

ベストアンサー率 41% (324/772)

難しく考えてはいけません。
簡単に言えばドラッグしている状態を検出すれば
よいのですから、、、

入門本などによく例題として掲載されているお絵かき
ソフトのプログラムが似たようなことをやっていますよ。
一度お絵かきソフトのソースコードを眺めて
みては如何ですか?

通常お絵かきソフトはOnMouseDown, OnMouseMove,
OnMouseUpを使って線を描画しますが、
OnMouseMoveの代わりに何かを使えば、、、
お礼コメント
Richi

お礼率 67% (39/58)

お返事ありがとうございました。
難しく考えすぎてました。
OnMouseDownでフラグ変数をOnにして
タイマーを起動し、ラベルに数値表示する
方法でやってみます。(OnMouseUpでフラグOff)
投稿日時 - 2001-01-30 00:14:07
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ