Daten in Memo aus Zwischenablage - OnChange erkennt nicht alle Zeilen
-
Hallo Zusammen,
ich habe auf meinem Formular ein Memo Feld. In das kopiere ich aus der Zwischenablage 4 Zeilen Text.
Ich würde jetzt gerne das nach dein reinkopieren des Texteseine Funktion ausgeführt wird. Probiert habe ich es mit OnChange. Leider wird dann nur mit der ersten Zeile aus dem Memo arbeiten. Die anderen 3 sind nicht vorhanden.Wie könnte ich es noch machen?
Danke im voraus.
-
Wenn der Text auf jeden Fall aus der Zwischenablage kommt, dann kannst du natürlich auch beim OnChange auf den Text in der Zwischenablage zugreifen:
TClipboard::GetTextBuf
-
Das Problem ist, dass das OnChange durch das kopieren der Zwischenablage in das Memo-Feld ausgeführt wird.
-
Ev. in OnChange ein PostMessage absetzen und dann auf dieses reagieren. Weiss aber auch nicht, ob dann dein Memofeld bereits alle Zeilen enthält.
Ansonsten starte in OnChange vlt. einen Timer und führe deine Funktion nach Ablauf des Timers aus. Der kann ja auch sehr kurz eingestellt sein.
-
EPMS schrieb:
Das Problem ist, dass das OnChange durch das kopieren der Zwischenablage in das Memo-Feld ausgeführt wird.
Das habe ich wohl verstanden.
Außerdem habe ich verstanden, dass du offenbar in dem OnChange Ereignis auf den Text des Memofeldes zurückgreifst, dort aber nicht den kompletten Text der Zwischenablage bekommst sondern nur die erste Zeile.
Daher war meine Anregung, per Clipboard den kompletten Text der Zwischenablage zu bekommen in dem Moment, wo der in das Memo-Feld eingefügt wird.
Wenn das aber nicht dein eigentliches Problem ist, liegt das an deiner sehr kurzen und unvollständigen Beschreibung des Problems bzw. dessen, was du eigentlich erreichen möchtest.
-
Ich habe es jetzt on OnChange gelöst. Statt dessen nehme ich einen Button und kopieren den Text mittels TClipboard in das Memo Feld. Damit klappt es so wie ich es haben möchte.
@W. Posur
Danke für den Tipp.