Zaznaczanie tekstu w RichEdit

0

Chciałem napisać kod sprawdzający czy litera o współrzędnych X z RichEdit jest równa literze o tych samych współrzędnych z Edit.

Wszystko działa tylko, że jest jeden problem... Przy wpisywaniu pierwszej litery w RichEdit ten ją ignoruje. Wydaje mi się, że problem tkwi w tym, że zdarzenie ustawiłem na onKeyPress i wykonywane jest ono zanim litera zostanie wpisana w RichEdit.

Cały kod wygląda tak:

var
  Znak, Znak1: String;
  Before: TPoint;
begin
  Before := RichEdit1.CaretPos;
    RichEdit1.CaretPos := Before;
    RichEdit1.SelStart := RichEdit1.CaretPos.x-1;
    RichEdit1.SelLength := 1;
    Znak := RichEdit1.SelText;

    Edit1.SelStart := RichEdit1.CaretPos.x;
    Edit1.SelLength := 1;
    Znak1 := Edit1.SelText;

  If (Znak <> Znak1) Then
    begin
      RichEdit1.SelStart := Before.X;
      RichEdit1.SelLength := 1;
      RichEdit1.SelAttributes.Color := clRed;
    end;

  If (Znak = Znak1) Then
    begin
      RichEdit1.SelStart := Before.X;
      RichEdit1.SelLength := 1;
      RichEdit1.SelAttributes.Color := clGreen;
    end;
  RichEdit1.CaretPos := Before;
end;
0

Skorzystaj z OnChange lub OnKeyUp.

0

Podziałało. Program pobiera pierwszy wpisany znak jednakże nie może go pokolorować....

Edit1:
Po użyciu zdarzenia on KeyDown wszystko działa ;p Dzięki za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0