Wyświetlanie pozycji kursora w RichEdit

Aby na etykiecie Label1 wyświetlana była bieżąca pozycja kursora w RichEdit1 tworzymy zdarzenie OnSelectionChange dla komponentu RichEdi1t:

Unit1.cpp

void __fastcall TForm1::RichEdit1SelectionChange(TObject *Sender)
{
   int xPos = RichEdit1->Perform(EM_EXLINEFROMCHAR, 0, RichEdit1->SelStart) + 1;
   int yPos = RichEdit1->SelStart - RichEdit1->Perform(EM_LINEINDEX, -1, 0) +1;
   Label1->Caption = IntToStr(xPos) + " : " + IntToStr(yPos);
}

lub

Unit1.cpp

void __fastcall TForm1::RichEdit1SelectionChange(TObject *Sender)
{
   int Kolumna = SendMessage(RichEdit1->Handle, EM_LINEFROMCHAR, RichEdit1->SelStart, 0);
   int Linia = SendMessage(RichEdit1->Handle, EM_LINEINDEX, Kolumna, 0);
   Label1->Caption = "Kolumna: " + IntToStr(Kolumna);
   Label2->Caption = "Wiersz: " + IntToStr(Linia);
}