RichEdit Не видит #$A

-===DiMas===-
Дата: 16.05.2011 06:30:44
Всем доброго времени суток. Кто-нибудь может мне подсказать, почему SelText в RichEdit не видит символы #$A, при этом #$D видит нормально (т.е. переход строк видит НЕ как #$D#$A, a как #$D), в следствие чего некорректно возвращает SelLength в случае если в выделенном тексте имеются переводы строк.

фактически:
Length(RichEdit.SelText) <> Length(copy(RichEdit.Text, RichEdit.SelStart, RichEdit.SelLength))

если же брать Memo то там возвращается все ок, переходы строк - #$D#$A

В чем прикол?
-===DiMas===-
Дата: 16.05.2011 07:32:58
Эксперимент:
procedure TForm1.Button1Click(Sender: TObject);
var Result : Integer;
begin
    Edit1.Text := IntToStr(RichEdit1.SelStart);
    SendMessage(RichEdit1.Handle, EM_GETSEL, Longint(@Result), 0);
    Edit2.Text := IntToStr(Result);

end;

procedure TForm1.Button2Click(Sender: TObject);
var Result : Integer;
begin
    Edit3.Text := IntToStr(Memo1.SelStart);
    SendMessage(Memo1.Handle, EM_GETSEL, Longint(@Result), 0);
    Edit4.Text := IntToStr(Result);
end;

Если в РичЭдит и В Мемо ввести одинаковый текст с переносами строк и выделить одинаковый диапазон то позиции разные!!! как найти реальную позицию выделенного текста в RichEdit?
Anatoly Podgoretsky
Дата: 16.05.2011 08:45:46
А что видит?
FlyD
Дата: 16.05.2011 10:13:10
-===DiMas===-,

не поверишь, скопировал твой код и проверил на всякий - во всех 4х edit-ах одинаковое значение

что я делаю не так?
-===DiMas===-
Дата: 16.05.2011 19:03:15
FlyD,

Позиция рассчитывается неправильно если имеются переходы строк Картинка с другого сайта.
-===DiMas===-
Дата: 16.05.2011 19:17:03
Сравните длину SelText в Memo и RichEdit (DelphiXE)
FlyD
Дата: 16.05.2011 22:55:34
-===DiMas===-
Сравните длину SelText в Memo и RichEdit (DelphiXE)
хм, а в Delphi7 работает и значения одинаковые, на XE проверить возможности нет
-===DiMas===-
Дата: 16.05.2011 23:05:28
FlyD,

Так вот и странность... Прикол в том что позиция и в мемо и в ричэдит определяется одной и той же функцией SendMessage(RichEdit1.Handle, EM_GETSEL, Longint(@Result), 0);, а значения разные.