Delphi-Quellcode:
var IEditor: TIEditReader;
//Unit EditIntf -> aus Turbo Delphi
procedure TMySynEdit.HandleChange(Sender: TObject);
begin
IEditor.GetText(SelStart,TestBuffer, SelEnd-SelStart);
ShowMessage(StrPas(TestBuffer));
end;
ShowMessage() zeigt keinen Text an
Und wenn Du stattdessen ShowMessage(String(TestBuffer)) verwendest?
Danke erst mal wie verrückt für die Antwort.
Aber leider Nein...
In der Interface-Methode habe ich für String(Buffer) eine Fehlermeldung vom Compiler erhalten.
Für String(Buffer) := MySynEdit.SelText;
Auch Buffer := MySynEdit.SelText hilft nicht weiter. Zuweisung nicht möglich.
Und wenn ich Buffer := PChar(MySynEdit.SelText) sage, kommt kein Fehler, aber ich erhalte auch den Text nicht.
Sollte das an SynEdit liegen?
Nur, wie kopiert MySynedit dann ausgewählten Text in die Zwischenablage. Müsste doch nach meinem bisherigen Quelltextverständnis von SynEdit dann auch MySynEdit.SelText sein.
Wenn ich Statt Selstart die Zahl 1 und für Count irgendeine Länge eingebe, klappt es auch nicht und es klappt auch nicht, wenn ich Text selektiere und anschließend kopiere. Auch nicht, wenn ich nach dem Selektieren neuen Text schreibe. Das ShowMessage() Fenster bleibt leer.
Mit:
Delphi-Quellcode:
MySynEdit.SelStart := Position;
MySynEdit.SelEnd := Count-Position;
will ich erreichen, das der Text ab Position bis Count-Position als Selektierter Text interpretiert wird, um ihn laufend zu erhalten, damit er bei Aufruf der Methode verfügbar ist.
Wo ist da bloß mein Denkfehler?
.
Damit der Topf nicht explodiert, lässt man es ab und zu mal zischen.