Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TEdit "cannot focus a disabled or invisible window" (https://www.delphipraxis.net/138325-tedit-cannot-focus-disabled-invisible-window.html)

b00gie 7. Aug 2009 14:58


TEdit "cannot focus a disabled or invisible window"
 
Hallo zusammen,
ich hab ein Problem mit dem Fokus eines Edit-Felds.

Und zwar hab ich eine Loginfunktion. Wenn diese erfolgreich durchläuft, wird der Fokus mit SetFocus auf Edit1 gesetzt, damit man direkt schreiben kann. (Komportabler..). Funktioniert alles wunderbar.
Ich benutzt nebenbei noch das TCoolTrayIcon. Wenn meine Anwendung nun minimiert ist und ich versuche per PopUpMenu einen Login durchzuführen, bekomme ich diese Fehlermeldung "cannot focus a disabled or invisible window". Okay gesucht und getan....
... CanFocus sollte mir ja eigentlich melden wenn das Edit1 nicht fokusierbar ist, tut es aber nicht, ich bekomme immer True zurück... mit
Delphi-Quellcode:
if Edit1.Enabled = True AND Edit1.Visible = True then
komm ich auch nciht weiter. Die Anwendung ist minimiert und dennoch meldet mir Delphi das Edit1 Visible und Enabled ist und somit logischerweise auch CanFocus True ist!

Was kann ich da machen?

mkinzler 7. Aug 2009 15:08

Re: TEdit "cannot focus a disabled or invisible window&
 
Es scheint mir eher, das der CoolTray die Messages empfängt. Dessen Fenster ist dann aber wohl nicht sichtbar

b00gie 7. Aug 2009 15:10

Re: TEdit "cannot focus a disabled or invisible window&
 
hm okay, verstehen tu ich deinen Ansatz. Daran gedacht habe ich auch schon, aber wie könnte man sowas lösen?

himitsu 7. Aug 2009 15:16

Re: TEdit "cannot focus a disabled or invisible window&
 
du kannst auch bei deiner Form unter .ActiveControl im OI gleich die Komponente angeben, welche beim Start den Fokus bekommen soll.

BUG 7. Aug 2009 15:18

Re: TEdit "cannot focus a disabled or invisible window&
 
Zitat:

Zitat von b00gie
Delphi-Quellcode:
if Edit1.Enabled = True AND Edit1.Visible = True then

Nur mal so nebenbei: man sollte Boolean nicht auf true prüfen!
So gehts auch:
Delphi-Quellcode:
if Edit1.Enabled AND Edit1.Visible then
MfG,
Bug

DeddyH 7. Aug 2009 15:20

Re: TEdit "cannot focus a disabled or invisible window&
 
Zumal das wegen der fehlenden Klammern sowieso nicht kompiliert würde :zwinker:

jaenicke 7. Aug 2009 15:27

Re: TEdit "cannot focus a disabled or invisible window&
 
Zitat:

Zitat von DeddyH
Zumal das wegen der fehlenden Klammern sowieso nicht kompiliert würde :zwinker:

Doch, vielleicht schon, sind ja alles boolsche Werte, aber es kommt eben Schwachsinn heraus, wenn man a) auf True prüft und dann b) auch noch die Klammern weglässt...

hoika 7. Aug 2009 15:29

Re: TEdit "cannot focus a disabled or invisible window&
 
Hallo,

ich würde einfach ein try/except ujm den Edit.SetFocus machen.
Die Situation kenne ich aus leidlicher Erfahrung mit PageControls.


Heiko

himitsu 7. Aug 2009 15:45

Re: TEdit "cannot focus a disabled or invisible window&
 
wenn man die Klammern wegläßt, dann hat AND Vorrang

Delphi-Quellcode:
if (Edit1.Enabled = (True AND Edit1.Visible)) = True then
aber zum Glück würde hier zufällig aber dennoch das selbe Ergebnis rauskommen


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:52 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