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 Cursor fehlt nach SetFocus (https://www.delphipraxis.net/115476-tedit-cursor-fehlt-nach-setfocus.html)

haentschman 12. Jun 2008 21:03


TEdit Cursor fehlt nach SetFocus
 
Hallo alle... :hi:

ich bin wieder mal verzweifelt 8)

Gegebenheiten:

- Form mit 1 Label und 1 TEdit.
- im OnShow bekommt das TEdit den Focus --> kein blinkender Cursor vorhanden :gruebel: (manchmal ist er kurz zu sehen und dann weg)
- TEdit hat den Focus, da eingegebene Zeichen angezeigt werden
- Nach Mausklick auf TEdit ist Cursor da.

Hinweis: eingebunden ist ein Manifest für Vista um die Anwendung als Administrator laufen zu lassen.
PS: mit TMemo habe ich ähnliche Darstellungsprobleme (Cursor in der falschen Zeile, obwohl Memo leer ist) Link...

Kennt jeman diese Phänomene ?

:( der Tipp mit der Message aus dem letzten Post (im Prinzip ein after OnShow) des anderen Threads funktioniert leider auch nicht (Ergebnis das gleiche)

Danke...

Fussball-Robby 12. Jun 2008 21:15

Re: TEdit Cursor fehlt nach SetFocus
 
Ich kann den Fehler jetzt nicht reproduzieren, aber evtl. hilft ein einfaches ActiveControl := Edit1

haentschman 12. Jun 2008 21:25

Re: TEdit Cursor fehlt nach SetFocus
 
Danke für die schnelle Reaktion.

Es ist und bleibt eine lustige Raterunde... :(

ActiveControl := Edit1
gewinnt nicht.

- alles was irgendwie mit Visualisierung zu tun hat habe ich durch.
- selbst den Focus im Kreis laufen lassen und wieder zurück :roll:

das einzige was ich herausgefunden habe:

- mit der Message Variante -->
im OnShow nur der Aufruf der MessageProzedur
folgender Code in der MessageProzedur
Delphi-Quellcode:
Abbruch:= True;
  Edit1.Text:= '';
  FMesswerte.Top:= FWartungBearbeiten.Top + (FWartungBearbeiten.Height div 2) - 50;
  FMesswerte.Left:= FWartungBearbeiten.Left + (FWartungBearbeiten.Width div 2) - 160;
  Label1.Caption:= FWartungBearbeiten.ZQueryTat.FieldValues['MESSWERTTEXT'];
  Label2.Caption:= FWartungBearbeiten.ZQueryTat.FieldValues['EINHEIT'];
  Label3.Caption:= ' ' + FWartungBearbeiten.ZQueryTat.FieldValues['DETAIL'] + ' * ' + FWartungBearbeiten.ZQueryTat.FieldValues['BEZEICHNUNG'] + ' ';
  Edit1.SetFocus;
bei Breakpoint auf Zeile 1 ist der Cursor sichtbar, lasse ich weiterlaufen ist er weg. :gruebel:

haentschman 12. Jun 2008 22:11

Re: TEdit Cursor fehlt nach SetFocus
 
... ich habe mir jetzt erst einmal mit dem ValidateEdit von den Jedis geholfen.

...das kommt der Bedienung nahe, welche ich möchte und bringt auch gleich noch die Zeichenüberprüfung mit. Praktisch :thumb:

Unabhängig davon wäre es gut zu wissen woran es liegt. :gruebel:
Wie kann man diesen Zeicheneffekt überlisten. Ideen sind willkommen.

Danke an alle... :hi:

dataspider 13. Jun 2008 07:45

Re: TEdit Cursor fehlt nach SetFocus
 
Hi,

ich nutze dies eigentlich sehr oft mit SetFocus, allerdings meist bei modalen Formularen.
Auch ich kann das Verhalten nicht nschvollziehen.
Ich kenne nur Probleme, wenn das Form ein Parent hat.
Ich würde zum Test im OnCreate des Formulares Application.OnIdle eine Methode zuweisen, in welcher der Fokus dann gesetzt wird.
Natürlich in der Methode OnIdle wieder auf nil setzen, damit es nur einmal ausgeführt wird.
Damit kann man ausschließen, dass irgendein Prozeß, der nach dem OnShow ja noch aus der Warteschlange geholt wird, dieses Verhalten erzeugt.

Cu, Frank

RavenIV 13. Jun 2008 07:54

Re: TEdit Cursor fehlt nach SetFocus
 
Hast Du auch schön alle Updates und Fixes installiert?
Evtl. auch die inoffiziellen Fixes?

haentschman 13. Jun 2008 18:54

Re: TEdit Cursor fehlt nach SetFocus
 
Danke für Eure Tips...

Zitat:

Hast Du auch schön alle Updates und Fixes installiert?
Evtl. auch die inoffiziellen Fixes?
...meines Wissens ja. Inoffizielle :gruebel:

Zitat:

allerdings meist bei modalen Formularen.
... das besagte Formular ist Modal geöffnet.

Zitat:

Ich würde zum Test im OnCreate des Formulares Application.OnIdle eine Methode zuweisen
...kann ich heute nicht mehr testen, da zeitig ins Bett und morgen 4 Uhr Richtung Günzburg 8)

melde mich dann wieder.

Danke.


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