AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Aktuellen Focus verlieren oder löschen
Thema durchsuchen
Ansicht
Themen-Optionen

Aktuellen Focus verlieren oder löschen

Ein Thema von knaeuel · begonnen am 19. Sep 2018 · letzter Beitrag vom 1. Okt 2018
Antwort Antwort
Seite 2 von 2     12   
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#11

AW: Aktuellen Focus verlieren oder löschen

  Alt 29. Sep 2018, 08:46
Zitat:
//ClearFocus oder ReleaseFocus oder ForgetFocus wäre schön, gibts aber nicht
Nö aber SetFocus(0)

gruss
Ich hab' heute auch so etwas gebraucht und das hier gefunden:

FMX.Controls.TControl.ResetFocus
Dir ist aber klar das dieses Thema erledigt war oder?
SetFocused(nil);

gruss
Ja, die Lösung sah' ich im Thread, aber warum nicht aufzeigen, dass es auch andere Lösungsansätze gibt?
SetFocus(nil) klingt etwas weniger übersichtlich als ResetFocus.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#12

AW: Aktuellen Focus verlieren oder löschen

  Alt 29. Sep 2018, 09:51
SetFocused(nil); <> SetFocus(nil)

SetFocused ist global. Es spielt keine rolle welches Control den Focus hat!
während FMX.Controls.TControl.ResetFocus nur für ein spezifisches Control gilt. (Reine Vermutung bin kein FMX'ler)

gruss

Geändert von EWeiss (29. Sep 2018 um 10:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#13

AW: Aktuellen Focus verlieren oder löschen

  Alt 29. Sep 2018, 09:58
Den Fokus komplett abzugeben ist keine gute Idee, denn wenn die Anwendung ihn nicht mehr hat, dann bekommt ihn ein anderes Fenster (falls es andere Fenster gibt) und dein Programm verschwindet im Hintergrund.

Du kannst aber den Fokus dem Fenster geben, oder dem ersten Control auf Diesem. (entsprechend der TabStops)
Liegt der Fokus beim Umblättern im PageControl, dann wird beim Umblättern das erste Control auf dem neuen Tab fokusiert.
Lag der Fokus außerhalb, dann bleibt er dort, also einfach vor dem umblättern den Fokus raussetzen, wenn er im Tab liegt. (Parent/Parent/Parent/... des aktiven Controls ist ein TabSheet des PageControls)

TWinControl.Delphi-Referenz durchsuchenSelectFirst/Delphi-Referenz durchsuchenSelectNext/Delphi-Referenz durchsuchenCanFocus
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (29. Sep 2018 um 10:00 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#14

AW: Aktuellen Focus verlieren oder löschen

  Alt 29. Sep 2018, 10:02
Zitat:
Den Fokus komplett abzugeben ist keine gute Idee, denn wenn die Anwendung ihn nicht mehr hat, dann bekommt ihn ein anderes Fenster (falls es andere Fenster gibt) und dein Programm verschwindet im Hintergrund.
Schau doch einfach mal um was es hier geht.. NICHT um Windows!
Welches Fenster bekommt dann den Focus unter Android\FMX ?

gruss
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#15

AW: Aktuellen Focus verlieren oder löschen

  Alt 29. Sep 2018, 20:56
Selbst Android kennt einen Desktop-Modus, wo mehrere Fenster/Programme gleichzeitig nicht im Vollbild aktiv sein können.

Aber OK ... gute Frage war im normalen Vollbild-OneApp-Modus dann passiert.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
knaeuel

Registriert seit: 2. Jul 2007
110 Beiträge
 
Delphi 10.3 Rio
 
#16

AW: Aktuellen Focus verlieren oder löschen

  Alt 1. Okt 2018, 09:45
@himitsu: interessanter gedanke auf jeden fall. bisher bleibt die app beim löschen des focus auf andoird und ios im vordergrund. sollte sich das aber mal ändern, habe ich das hier jetzt im hinterkopf. danke!
Wolfgang
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#17

AW: Aktuellen Focus verlieren oder löschen

  Alt 1. Okt 2018, 10:15
@himitsu: interessanter gedanke auf jeden fall!
Mehr aber auch nicht ein Gedanke.
Zitat:
bisher bleibt die app beim löschen des focus auf andoird und ios im Vordergrund
Wird sich auch nie ändern.
Zitat:
sollte sich das aber mal ändern
Wird es nicht!

Zitat:
Den Fokus komplett abzugeben ist keine gute Idee, denn wenn die Anwendung ihn nicht mehr hat, dann bekommt ihn ein anderes Fenster (falls es andere Fenster gibt) und dein Programm verschwindet im Hintergrund.
Quatsch..

Mit Verlaub.. Die Annahme von @himitsu ist schlichtweg falsch.

Denn das setzen des Focus ist nur gültig für den eigenen Prozess und kann nicht an übergeordnete Fenster die mit dem eigenen Prozess nichts zu tu haben übergeben werden.

Teste es ganz einfach.
Schicke eine Message an ein fremdes Fenster mit SetFocus(AnderesFensterHandleControl) und du wirst sehen es tut sich NICHTS.
Zudem hat es keinerlei Einfluss auf irgendeine ZOrder in welcher form auch immer.

Um den Focus auf einen anderen Prozess (Fenster (Zorder)) zu setzen gibt es als Beispiel diese Funktion
SetForegroundWindow.. dann benötigst du kein SetFocus mehr da in diesem Fall deine Anwendung keinen Focus mehr hat.

Und nochmal das setzen des SetFocus(0) oder wie unter Android SetFocused(nil) hat keinen Einfluss auf irgendeinen Parent. Weder in der ZOrder noch aktiviert es ein anderes Fenster außerhalb der eigenen Anwendung und setzt ihn dort.
Nicht alles was @himitsu schreibt ist zwangsläufig auch richtig!

gruss

Geändert von EWeiss ( 1. Okt 2018 um 11:14 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Aktuellen Focus verlieren oder löschen

  Alt 1. Okt 2018, 10:58
Um den Focus auf einen anderen Prozess (Fenster (Zorder)) zu setzen gibt es als Beispiel diese Funktion
SetForegroundWindow.. in dem Fall benötigst du kein SetFocus mehr da in diesem Fall deine Anwendung keinen Focus mehr hat.

Und nochmal das setzen des SetFocus(0) hat keinen Einfluss auf irgendeinen Parent. Weder in der ZOrder noch aktiviert es ein anderes Fenster und setzt ihn dort.
Wenn man im Vorfeld mit AttachThreadInput ne Verbindung aufbaut kann man auch mit SetFocus(fremdThread) hin und her hopsen. (als weiteres Beispiel)
So sind jedenfalls meine Erfahrungen damit, ansonsten gebe auch ich dem letzten part von EWeiss Recht.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#19

AW: Aktuellen Focus verlieren oder löschen

  Alt 1. Okt 2018, 11:02
Um den Focus auf einen anderen Prozess (Fenster (Zorder)) zu setzen gibt es als Beispiel diese Funktion
SetForegroundWindow.. in dem Fall benötigst du kein SetFocus mehr da in diesem Fall deine Anwendung keinen Focus mehr hat.

Und nochmal das setzen des SetFocus(0) hat keinen Einfluss auf irgendeinen Parent. Weder in der ZOrder noch aktiviert es ein anderes Fenster und setzt ihn dort.
Wenn man im Vorfeld mit AttachThreadInput ne Verbindung aufbaut kann man auch mit SetFocus(fremdThread) hin und her hopsen. (als weiteres Beispiel)
So sind jedenfalls meine Erfahrungen damit, ansonsten gebe auch ich dem letzten part von EWeiss Recht.
Es geht hier um SetFocus der eigenen Anwendung.
Nicht um Input.. Set Keyboard Focus als Beispiel. Das ist ebenfalls mit Verlaub etwas ganz anderes.

gruss
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz