Autor Beitrag
GerhardS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Mi 29.07.15 15:50 
Hallo,
ich habe ein Problem, das sowohl in Delphi (XE2) als auch in VS 2013 (C#, Windows-Forms-Anwendung) auftritt: ab einer bestimmten Komplexität funktioniert in TMemo bzw. einer TextBox die Entfernen-Taste nicht mehr. Der Komplexitätsgrad ist in Delphi schwer zu bestimmen - ich habe eine Delphi-Anwendung mit 21 Units; in Visual Studio sind es nur 539 Zeilen, alle sind Teil der Klasse frmMain. Wenn auf der Windows-Form allein ein TMemo bzw. eine TextBox liegt und der Code sonst nichts enthält, tritt das Problem nicht auf.
(Meine Entfernen-Taste funktioniert aber sehr wohl in diesem Forum oder in Notepad.)
Kennt jemand dieses Problem?
Nachtrag: Die Entfernen-Taste funktioniert in XE2- und VS2013-Anwendungen dann nicht, wenn nichts markiert ist. Ist allerdings ein Zeichen markiert, funktioniert die Taste sehr wohl. Bei C# springt aber nach dem Entfernen der Cursor an den Zeilenanfang.
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 29.07.15 19:22 
"Die Entfernen-Taste funktioniert in XE2- und VS2013-Anwendungen dann nicht, wenn nichts markiert ist."

Muss man das verstehen?
mandras
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 429
Erhaltene Danke: 107

Win 10
Delphi 6 Prof, Delphi 10.4 Prof
BeitragVerfasst: Mi 29.07.15 19:35 
user profile iconhathor hat folgendes geschrieben Zum zitierten Posting springen:
"Die Entfernen-Taste funktioniert in XE2- und VS2013-Anwendungen dann nicht, wenn nichts markiert ist."

Muss man das verstehen?


Ich vermute:
- gewünschtes Verhalten: Wenn etwas markiert ist löscht "Entfernen" das Markierte. Wenn nichts markiert ist, wird das Zeichen rechts vom Cursor gelöscht
GerhardS Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Mi 29.07.15 19:35 
Zitat:
Muss man das verstehen?

Ja. Schreibe mal ein Wort in ein neues Notepad-Fenster, setzte den Cursor (hier: caret) in das Wort und drücke die Entfernen-Taste: es wird ein Buchstabe rechts vom Cursor gelöscht, ohne dass du ihn markiert hast.
Eben dieses Verhalten zeigen auch TMemo und TextBox, wenn du auf einer Windows-Form nur TMemo oder TextBox plaziert hast und die Anwendung sonst nichts tut. Erst wenn die Anwendung komplexer wird, zeigen TMemo und TextBox ein anderes Verhalten.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19274
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 29.07.15 20:03 
Mit der "Komplexität" oder Größe der Anwendung hat das definitiv nichts zu tun. Da muss irgendetwas in dem Programm in die Verarbeitung der Tastendrücke eingreifen.

Ohne ein Beispielprojekt oder mehr Informationen dürfte es aber schwierig werden etwas dazu zu sagen... ggf. würde auch eine fertige Exe erst einmal reichen um zu testen, ob das auch auf anderen Systemen auftritt. Nicht dass es am Tastaturtreiber oder einem Virus liegt.

Ansonsten bleibt nur der Standardtipp:
Alles schrittweise entfernen aus der Anwendung bis der Fehler nicht mehr auftritt (dann war es eine der letzten entfernten Sachen) oder ein kleines Beispiel fürs Forum übrig bleibt...
GerhardS Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Mi 29.07.15 20:55 
Zum besseren Verständnis füge ich hier zwei Dateien an:
1. die Datei WT2a.rar. Sie enthält die Dateien unit9.pas und unit9.dfm.
2. die Datei Webseite_bearbeiten.rar. Sie enthält ein vollständiges C#-Projekt.

Ich habe die exe-Dateien auf 2 verschiedenen Computern unter Windows 7 und Windows 8.1 getestet. Das 'falsche' Verhalten der Entfernen-Taste tritt auf beiden Computern auf.
Einloggen, um Attachments anzusehen!
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 29.07.15 20:58 
Gibt es mehrere Cursor?
GerhardS Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Mi 29.07.15 21:18 
user profile iconhathor hat folgendes geschrieben Zum zitierten Posting springen:
Gibt es mehrere Cursor?

Nein, nur einen.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19274
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 29.07.15 22:26 
Du hast dem Menüeintrag Löschen die Taste zugewiesen. Darin wiederum ersetzt du den ganzen Text der Textbox, wenn eine Auswahl da ist (deshalb springt der Cursor an den Anfang des Memos) und machst gar nix, wenn keine Auswahl da ist (deshalb passiert da auch nix ;-)).

Ich habe den Shortcut mal entfernt und dann ging es auch. ;-)
GerhardS Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Do 30.07.15 01:19 
Besten Dank. Das war's, auch in Delphi.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19274
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 30.07.15 08:21 
Wegen dem Löschen im Menü übrigens:
Statt den markierten Text im ganzen Text zu ersetzen (was auch blöd ist, wenn er mehrfach vorkommt ;-)) reicht es SelText auf einen Leerstring zu setzen. Dann springt der Cursor auch nicht.