Zitat von
shmia:
Muss das Editieren wirklich so restriktiv abgesichert sein?
Ich hatte diese Procedure OnAppMsg erst garnicht drin. Sie ist erst dazugekommen, wie ich darauf aufmerksam gemacht wurde, dass die Knoten mit der Standardvorgabe nicht in der Datenbank von Code-Orakel abgespeichert wurden. Darauf hin habe ich diese Procedure entwickelt (mit Hilfe von euch
) um beim betätigen der Enter-Taste abzuprüfen, ob noch die Standardvorgabe der Knotenname ist oder nicht und dementsprechend eine Message auszugeben. Mittlerweile merke ich, dass das nicht so eine gute Idee war.
Zitat von
shmia:
Folgende Situation:
Benutzer editiert Knotennamen (name ist noch leer) und entscheidet sich spontan zuerst einen anderen Knoten nochmal zu ändern.
Er kommt jetzt aber aus dem Editor nicht raus.
Er kommt mit der Escape-Taste aus dem Knoten und der Ursprung wird wiederhergestellt.
Zitat von
shmia:
Es kann auch nicht mal kurz auf einen anderen Knoten springen, den Namen kopieren, auf den namenlosen Knoten springen, Namen einfügen und dann abändern.
Ich würde erst dann, wenn das Treeview gespeichert oder sonstwas damit passiert prüfen.
Alle Knoten durchgehen, falls Knotenname nicht den Regeln entspricht den Focus darauf setzen und dem Benutzer eine Mitteilung anzeigen.
Diese Vorgehensweise hat auch den Vorteil, dass die Logik zum Prüfen des Treeviews kompakt und zentral an einer Stelle sitzt.
Bei deinem Ansatz ist die Logik verteilt und greift ausserdem relativ unangenehm in das Messageverhalten von Windows ein.
Ausserdem werden Daten, die per Copy & Paste eingefügt werden nicht geprüft (falls ich mich nicht irre).
Da besteht bei mir jetzt das Problem, wie kann ich es anders lösen ? Ich schreibe die Daten des TreeViews direkt in die Datenbank mit dem Ereignis OnEdited vom TTreeView.
Edit: Nach jetzt weiteren Tests, habe ich festgestellt, dass wohl irgendeine Einstellung an der Komponente oder an einer anderen Komponente das hervor ruft, das ich kein Copy&Paste machen kann. Wenn jemand weiß, woran es liegt sage doch bitte Bescheid. Ich komme nämlich echt nicht mehr weiter.