Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Button nach dem Klick markiert (https://www.delphipraxis.net/211796-button-nach-dem-klick-markiert.html)

lucy 3. Nov 2022 09:53

Button nach dem Klick markiert
 
Liste der Anhänge anzeigen (Anzahl: 1)
hallo,

warum bleibt der Button nach einem Klick markiert?

siehe Anhang.

kann dieses abgestellt werden?

jziersch 3. Nov 2022 10:01

AW: Button nach dem Klick markiert
 
In Deinem OnClick mach ein SetFocus auf das Control Deiner Wahl

Sinspin 3. Nov 2022 10:02

AW: Button nach dem Klick markiert
 
Hey, Der Button hat den Focus bekommen.
Das ändert sich erst wenn Du auf einen anderen Button clickst oder in ein Textfeld, dann wird der Focus auf das andere Element verschoben.

himitsu 3. Nov 2022 10:03

AW: Button nach dem Klick markiert
 
Weil er den Fokus bekommt und der dort so lange bleibt, bis du ihn weg machst / woanders hin tust?

TSpeedButton bekommt z.B. niemals den Fokus. (er kann dafür aber auch nicht via Tastatur bedient werden)

lucy 3. Nov 2022 10:20

AW: Button nach dem Klick markiert
 
danke 8-)

TSpeedButton ist eine gute Idee :-)

peterbelow 3. Nov 2022 14:40

AW: Button nach dem Klick markiert
 
Zitat:

Zitat von himitsu (Beitrag 1514237)
TSpeedButton bekommt z.B. niemals den Fokus. (er kann dafür aber auch nicht via Tastatur bedient werden)

Doch, kann er. Shortcuts (Alt+Buchstabe) funktionieren auch für TSpeedbuttons. Enter/Return allerdings nicht, da hast Du recht, dafür müßte der Button den Focus haben.

Redeemer 3. Nov 2022 15:16

AW: Button nach dem Klick markiert
 
Ich habe einen Class Helper für TWinControl mit einer Methode namens Blur (so heißt diese Funktion in JavaScript). Die deaktiviert und aktiviert ein Control. Dadurch verliert es den Fokus. Eventuell könnte man auch stattdessen ActiveControl vom Formular auf nil setzen.

himitsu 3. Nov 2022 16:15

AW: Button nach dem Klick markiert
 
Bei NIL mußt du immer etwas aufpassen,
wenn das Programm keinen Fokus mehr hat und noch andere Programme offen sind, dann bekommen sie den Fokus und dein Programm wird in den Hintergrund verschoben.

Delphi-Quellcode:
{Self.}SetFocus;
, also auf die Form setzen
oder SetFocus, bzw. ActiveControl auf irgendeine andere Komponente.

Alternativ
Delphi-Quellcode:
{Self.}FindNextControl(...).SetFocus;
oder
Delphi-Quellcode:
{Self.}SelectNext(...);
und ein anderes Control für den Fokus suchen lassen.



Zitat:

Zitat von peterbelow (Beitrag 1514247)
Enter/Return allerdings nicht,

Oder Leertaste.
Und bei .Default oder .Cancel auch global auf Enter oder Escape.

Stimmt, ToolButtons haben keine Caption und somit auch keine Shortcuts.

Bei DevExpress haben cxButtons ein SpeedButtonOptions.CanBeFocussed, wo man per Property zwischen dem Verhalten eines "normalen" Button und SpeedButton wechseln kann.



Und schön ist auch, dass alles unterschiedlich reagiert.
* Manches auf's Drücken der Taste
* Anderes auf's Loslassen

z.B. Maus oft (nicht immer) auf Loslassen und Tastatur auf Runterdrücken.



Ich hatte mal den "Gäg", dass beim Drücken von F2 ein Aufwahlfenster mit Vorgabewerten schnell geschlossen werden konnte ... beim Drücken der Taste
und im übergeordneten Fenster wurde F2 beim Loslassen benutzt, um das Aufwahlfenster zu öffnen.

F2 = Aufwahl auf -> nochmal F2 = Aufwahl zu, aber sofort gleich nochmal auf


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz