1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| procedure TForm1.RichEdit1SelectionChange(Sender: TObject); var Bereich : TCharRange; PunktStart : TPoint; PunktEnde : TPoint; ErstesZeichen : integer; LetztesZeichen : integer; begin SendMessage(RichEdit1.Handle, EM_EXGETSEL, 0, lParam(@Bereich)); ErstesZeichen := Bereich.cpMin; LetztesZeichen := Bereich.cpMax; SendMessage(RichEdit1.Handle, EM_PosFromChar, wParam(@PunktStart), lParam(ErstesZeichen)); SendMessage(RichEdit1.Handle, EM_PosFromChar, wParam(@PunktEnde), lParam(LetztesZeichen)); PunktStart := ClientToScreen(PunktStart); PunktEnde := ClientToScreen(PunktEnde); Label1.Caption := 'Erstes Zeichen: ' + IntToStr(Bereich.cpMin); Label2.Caption := 'Letztes Zeichen: ' + IntToStr((Bereich.cpMax)); Label3.Caption := '1. Koordinate (x/y): ' + IntToStr(PunktStart.X) + ' - ' + IntToStr(PunktStart.Y); Label4.Caption := '2. Koordinate (x/y): ' + IntToStr(PunktEnde.X) + ' - ' + IntToStr(PunktEnde.Y); end; |