TSpeedButtonを強制的にフラットに再描画する方法はありますか?
タッチスクリーンモニターを使用している場合、マウスはボタンの外に移動しないため、別のボタンをクリックしても、浮き上がった境界線は画面に表示されたままになります。
TSpeedButtonを強制的にフラットに再描画する方法はありますか?
タッチスクリーンモニターを使用している場合、マウスはボタンの外に移動しないため、別のボタンをクリックしても、浮き上がった境界線は画面に表示されたままになります。
これはタッチスクリーンなしで再現できるものではないようですが、正しく理解していれば、誰かがボタンに触れると熱くなります(Downがtrueの場合は上昇するか、ハイライト表示されます)が、タッチすると別のボタンはマウスの終了をトリガーしないため、高温のままです。あれは正しいですか?
これを修正する方法はいくつかあります。おそらく最も簡単なのは、クリックイベントごとに、マウスをボタンから離すメソッドであるtopを呼び出すことです。
Mouse.CursorPos := Point(0,0);
それでも不十分な場合は、クリックされたボタンを無効にし、マウスをオフにして更新し、再度有効にすることができます。 無効にしたボタンをホットにすることはできません。 マウスを動かしてボタンを1秒間無効にした後、ボタンを有効にするタイマーが必要な場合もありますが、マウスを動かすだけで十分だと思います。
また、タッチしたボタンにマウスカーソルを置いたままにするとチーズだといつも思っていたので、タッチシステムが上品に見えます。
FlatプロパティをTrueに設定してみましたか?