Es sieht nicht so aus, als könnte ich ohne einen Touchscreen wiedergeben, aber wenn ich Sie richtig verstehe, wenn jemand einen Knopf berührt, dann wird es heiß (entweder steigt auf, wenn Down wahr ist, oder Hervorhebung), Aber wenn sie eine andere Taste berühren, wird der Mausausgang nicht ausgelöst, so dass sie heiß bleibt. Ist das korrekt?
Es gibt mehrere Möglichkeiten, dies zu beheben. Wahrscheinlich ist das einfachste bei jedem Klick-Ereignis ein Aufruf einer Methode, die die Maus von der Schaltfläche weg bewegt.
Mouse.CursorPos := Point(0,0);
Wenn das nicht genug ist, dann können Sie die Taste deaktivieren, die auf geklickt wurde, bewegen Sie die Maus aus, aktualisieren Sie es, und es wieder aktivieren. Eine deaktivierte Taste kann nicht heiß sein. Vielleicht möchten Sie einen Timer, der die Schaltfläche aktiviert, nachdem sie für eine Sekunde mit der Maus deaktiviert wurde, aber ich wette, dass nur das Bewegen der Maus genug sein wird.
Außerdem dachte ich immer, es wäre Käse, wenn ein Mauszeiger auf dem Knopf, den ich gerade berührt habe, übrig geblieben ist, so dass Ihr Touch-System dadurch edler aussieht.
Danke Jim, das funktioniert super. Ich werde wahrscheinlich eine Option brauchen, um es auszuschalten, es ist seltsam, wenn Sie eine echte Maus verwenden. – stukelly
Sie haben Recht, wenn Sie eine andere Taste berühren, wird der Mausausgang nicht ausgelöst. – stukelly
Das klingt dann wie ein Fehler in der VCL, da es OnExit auslösen soll, wenn es erkennt, dass die Maus aus irgendeinem Grund in ein anderes Steuerelement verschoben wurde. Welche Version von Delphi/BCB verwenden Sie? –