In Listboxfeldern Return-Taste bei Texteingabe erlauben

Hallo in die Runde,

ich habe gerade ein recht banales Problem. Ich möchte in v17.3 die direkte Änderung von Text in einem Listboxfeld ermöglichen. Die Listbox zeigt auch mehrzeilige Inhalte an und alles funktioniert prächtig. Nur wenn ich in einer Zelle den Text verändere und einen Zeilenumbruch per Return-Taste einfügen möchte, schliesst dies natürlich die Eingabe in das Feld ab.
Gibt es einen Weg um dieses Standardverhalten herum? In den meisten Fällen ist dies ja richtig, nur in meinem speziellen Fall benötige ich eben auch mal die Möglichkeit der Return Taste.

Gruß,
Marc

Schau mal in “Datenbank-Eigenschaften” in der Registerkarte “Oberfläche”. Da kannst Du grundsätzlich die Tastenkombination für die Bestätigung eines Eingabeformulars ändern.

Danke Werner, aber das ist nicht die Funktion, die ich suche. Damit würde ich ja global die Tastenfunktion für alle Formulare ändern.

Es geht mir nur darum, das bei Eingabe in das Textfeld einer Listbox ich kein Zeilenumbruch erzeugen kann, weil dann die Listbox das Drücken der Return Taste als Abschluss der Eingabe ansieht.

Es geht also auch nicht um das gesamte Formular, das sich schließt, sondern nur darum, das die Listbox meint, das mit Return die Eingabe abgeschlossen wäre, anstelle einen Zeilenumbruch einzufügen.

Als Workaround würde ich:

  • Eine unsichtbare Schaltfläche auf dem Formular anlegen und mit Abkürzung Return belegen.
  • Dieser Schaltfläche dann als Objektmethode geben:
    <code 4D>
    SET TEXT TO PASTEBOARD(Char(13))
    POST KEY(Character code(“v”);Command key mask;Current process)

</code 4D>

Danke, Joerg, das ist in der Tat ein Workaround, der auch irgendwie funtioniert.
Habe ihn jetzt noch erweitert um meine derzeitige Zwischenablage zu retten, aber für den Moment macht es jetzt das was es soll.
Ich hatte jetzt schon überlegt, ob ich nicht mit “On After Keystroke” in der Listbox weiterkomme, aber dazu habe ich mich bisher zu wenig mit bem Abfangen von Tastaturevents beschäftigt.