Delphi-PRAXiS
Seite 1 von 2  1 2      

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 Dauer-Select-Problem bei Edit-Feldern und Comboboxen (https://www.delphipraxis.net/138933-dauer-select-problem-bei-edit-feldern-und-comboboxen.html)

martinf16 20. Aug 2009 01:40


Dauer-Select-Problem bei Edit-Feldern und Comboboxen
 
Hallo,

immer wieder erlebe ich in Delphi folgendes Problem:

Eine Anwendung wird kompiliert, ausgeführt und plötzlich sind wahllos Edit-Felder und Comboboxen selektiert (also die Schrift markiert). Das tritt komischerweise bei vielen der Felder und Boxen gleichzeitig auf und schreckt selbst von enabled=false nicht zurück.

Manchmal tritt das Problem auch schon zur Design-Zeit auf. Die Felder kann man dann auch wenn man sie markiert und mit der Maus woanders hin klickt normalisieren, wenn man dann in den Code geht und wieder zurück sind die Felder aber unter Umständen wieder markiert.

Nun ist dies kein schwerwiegender Fehler, der das Programm unbenutzbar macht, trotzdem würde mich aber mal interessieren ob ihr auch ähnliche Probleme habt und wie, soweit möglich, dieser Verhalten abgestellt werden kann. Schließlich sieht es nicht besonders gut aus und könnte den Anwender verwirren.

Viele Grüße!

HiWieGehts 20. Aug 2009 05:58

Re: Dauer-Select-Problem bei Edit-Feldern und Comboboxen
 
dieses Problem hatte ich noch nie (Delphi1, Delphi2, Delphi6 und RadStudio2007)
LG

alzaimar 20. Aug 2009 06:39

Re: Dauer-Select-Problem bei Edit-Feldern und Comboboxen
 
Hast Du schon mal eine andere Tastatur in Erwägung gezogen?

martinf16 20. Aug 2009 14:35

Re: Dauer-Select-Problem bei Edit-Feldern und Comboboxen
 
@alzaimar:
Habe ich noch nicht probiert. Wieso könnte das denn helfen?

@all:
Gibt es vielleicht eine Möglichkeit, das markieren generell zu untersagen? Zum Beispiel in ComboBoxen, wo der User nur etwas auswählen soll aber nichts selber schreiben kann, wäre das ja sinnvoll.

HiWieGehts 21. Aug 2009 07:31

Re: Dauer-Select-Problem bei Edit-Feldern und Comboboxen
 
Hallo,
welche Delphi-Version hast du und sind alle Updates installiert?
Verwendest du die Delphi-Originalkomponenten oder andere?
Werden im Programm Windows-Nachrichten durch eigenen Code bearbeitet/erzeugt?
Besteht das Problem nur auf deinem Rechner oder auch wenn du das Programm auf einem anderen Rechner verwendest?

LG

martinf16 23. Aug 2009 20:24

Re: Dauer-Select-Problem bei Edit-Feldern und Comboboxen
 
Zitat:

Welche Delphi-Version hast du und sind alle Updates installiert?
Turbo Delphi, laut About-Box Version 10.0.2288.42451 Update 2
Ich habe aber keine Updates manuell installiert.

Zitat:

Verwendest du die Delphi-Originalkomponenten oder andere?
Ich verwende nur die Originalkomponenten.

Zitat:

Werden im Programm Windows-Nachrichten durch eigenen Code bearbeitet/erzeugt?
Nein.

Zitat:

Besteht das Problem nur auf deinem Rechner oder auch wenn du das Programm auf einem anderen Rechner verwendest?
Es besteht auch auf anderen Rechnern. Das Programm startet, einige Comboboxen sind und Editfelder sind markiert. Jetzt kann man mit der Maus reinklicken und woanders hinklicken und die Markierung ist weg. Genauso zur Design-Zeit. Reinklicken und weg ist die Markierung (also das läuft normal). Allerdings sind die Design-Time-Markierungen nicht dieselben wie die des kompilierten Programms.


Ich habe inzwischen weitergesucht und habe für RichEdit-Felder die EM_HIDESELECTION gefunden. Das zeigt bei meinen normalen Editfeldern aber keine Wirkung. Gibt es etwas ähnliches um die Felder beim Programmstart zb im OnCreate zu normalisieren?! Wenn einmal reingeklickt wurde funktioniert es ja. Es sieht nur ziemlich blöd aus wenn die Felder enabled=false sind aber trotzdem noch markiert sind.

Vielen Dank!

Satty67 23. Aug 2009 20:49

Re: Dauer-Select-Problem bei Edit-Feldern und Comboboxen
 
Zitat:

Zitat von martinf16
Gibt es etwas ähnliches um die Felder beim Programmstart zb im OnCreate zu normalisieren?

Vielleicht SelLength auf 0 setzten.

Aber denke die Wahrscheinlichkeit, das es an der IDE/Delphi liegt, ist nicht sehr hoch (besonders dann nicht, wenn es bei neuen Projekten nicht auftritt). Würde da nochmal untersuchen, ob es nicht durch irgendeine Action im Programmcode ausgelöst wird.

martinf16 24. Aug 2009 02:43

Re: Dauer-Select-Problem bei Edit-Feldern und Comboboxen
 
Das mit SelLength habe ich probiert, bringt nichts. Ich habe es allerdings ins OnCreate geschrieben (SelLength := 0). Ich probiere es noch einmal an einer anderen Stelle.

Aus Testzwecken habe ich auch mal SetFocus probiert, damit lässt sich die Markierung auflösen, aber das ist ja auch etwas unsauber, wenn man nun beim Programmstart allen Elementen den Focus gibt, da SetFocus nicht im OnCreate benutzbar ist.

Also so bekomme ich es zur Laufzeit weg:

Delphi-Quellcode:
//Edit1 ist markiert

Edit1.SetFocus;
//Edit1 ist immer noch markiert

CheckBox1.SetFocus;
//Edit1 ist nicht mehr markiert
Vielleicht gibt es irgendeine WindowsMessage, die SetFocus intern aufruft, die man simulieren könnte. Die Frage ist nur, ob man das dann im OnCreate machen kann?!

Mackhack 24. Aug 2009 06:41

Re: Dauer-Select-Problem bei Edit-Feldern und Comboboxen
 
Zitat:

Zitat von martinf16
@all:
Gibt es vielleicht eine Möglichkeit, das markieren generell zu untersagen? Zum Beispiel in ComboBoxen, wo der User nur etwas auswählen soll aber nichts selber schreiben kann, wäre das ja sinnvoll.

ComboBox Style auf "csOwnerDrawFixed" und keiner kann was schreiben.

Viktorii 24. Aug 2009 07:06

Re: Dauer-Select-Problem bei Edit-Feldern und Comboboxen
 
Könntest Du evtl. mal ein Beispielprogramm welches sich so verhält (kompiliert und als Quelltext/Projekt) posten?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:05 Uhr.
Seite 1 von 2  1 2      

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