Nur sichtbarer text in richedit
-
Tagchen,
Kann mir jemand sagen, wie man den nur sichtbaren Textteil aus dem RichEditobjekt selektieren kann.
Ich denke das müßte irgendwie über ->lines gehen.
Kann in der Hilfe nichts finden
Danke im Vorraus
-
RichEdit1->SelStart()
und RichEdit1->SelLength()oder RichEdit1->SelectAll()
-
mit SelectAll() selektiere ich auch den nicht sichtbaren Text.
Um mit SelStart und SelLength zu arbeiten müsste ich wissen das wievielte Zeichen im sichtbaren Bereich startet. Somit stünde ich wieder vor der selben Frage.
-
TRect R; int first, last, index; first = RichEdit1->Perform(EM_GETFIRSTVISIBLELINE, 0, 0); RichEdit1->Perform(EM_GETRECT, 0, long (&R)); R.left += 1; R.top = R.bottom - 2; index = RichEdit1->Perform(EM_CHARFROMPOS, 0, int (&R.left)); last = RichEdit1->Perform(EM_EXLINEFROMCHAR, 0, index); int start = 0; for (int i = 0; i < first; i++) start += RichEdit1->Lines->Strings[i].Length() + 2; int length = 0; for (int i = first; i <= last; i++) length += RichEdit1->Lines->Strings[i].Length() + 2; RichEdit1->SelStart = start; RichEdit1->SelLength = length; // ggf. zusätzl. - 1Basiert auf diesem Beitrag in den den Borland Newsgroups. Funktioniert wegen der API-Aufrufe aber nur unter Windows.
-
Mein Lieber Schwan,
Das war eine gute Antwort.
Ich werde echt Fan von diesem Forum