Zitat von
MrKnogge:
Wo issn der Code drinn ? Ich mein wann wird er ausgeführt ?
Und was machst du da mit dem perform ?
Wenn ich mich recht erinnere müsste doch gehen:
Delphi-Quellcode:
anfang := SynEdit1.SelStart;
ende := SynEdit.SelEnd;
Hallo Knogge!
Erstmal vielen Dank für Deine Antwort. Also der Code wird einfach über ein Kontextmenü aufgerufen. Ist aber auch eigentlich egal, dass einzige, was hier gewährleistet sein muss ist, dass irgendwas im SynEdit markiert ist, so dass SelStart und SelEnd einen sinnvollen Wert besitzen. Der Code, den Du geschrieben hast liefert mir einfach die Anfangs- bzw. Endposition der Markierung im Buffer zurück, d.h. er liefert die Zeichenposition im Puffer. Ich hätte aber gerne die
Zeile, in der die Markierung beginnt und die
Zeile in der die Markierung endet. Es gibt unter der Windows
API die Message EM_LINEFROMCHAR (für Memos oder RichText-Edits glaube ich...), die eigentlich, wenn man eine Position im Buffer übergibt (geschieht in meinem Beispielcode durch mySynEdit.SelStart bzw SelEnd) die entsprechend Zeile zurückliefern soll. Alternativ zu Perform kann man auch SendMessage verwenden. Hier benötigt man allerdings das
Handle des Objektes, an das man eine Nachricht schicken möchte.
StartLine := SendMessage (mySynEdit.Handle, EM_LINEFROMCHAR, mySynEdit.SelStart,0);
Das funzt aber leider auch nicht.
Trotzdem vielen Dank
Frank