Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.09;
Скачать: CL | DM;

Вниз

Непонятности с определением координат курсора в MEMO   Найти похожие ветки 

 
abhtr   (2006-05-29 14:59) [0]

Загружаю в MEMO текст из текстового файла. Для работы необходимо следить за координатами курсора. Начинаем с X=1, Y=1. Опускаемся по строчкам. Доходим до непонятного предела с координатами X=1, Y=2730. Следующий шаг на одну строчку вниз меняем координаты на X=-65535(с минусом), Y=1. Похоже на переполнение памяти. Но сами строчки идут нормальные, без всяких искажений. Как можно избежать этого "переполнения"?


 
TUser ©   (2006-05-29 15:21) [1]

Код давай


 
abhtr   (2006-05-29 15:52) [2]


procedure TfrmTxt_Dbf.memTXTKeyUp(Sender: TObject; var Key: Word;
 Shift: TShiftState);
var
 nPosX,
 nPosY
   : integer;
begin
 nPosX := memTXT.CaretPos.X + 1;
 nPosY := memTXT.CaretPos.Y + 1;
 lbl_Info.Caption := "Позиция символа: X="+IntToStr(nPosX)+", Y="+IntToStr(nPosY);
end;



 
TUser ©   (2006-05-29 16:33) [3]

Да, это переполнение, EM_GETSEL возвращает слишком большое значение

function TCustomMemo.GetCaretPos: TPoint;
begin
 Result.X := LongRec(SendMessage(Handle, EM_GETSEL, 0, 0)).Hi;
 Result.Y := SendMessage(Handle, EM_LINEFROMCHAR, Result.X, 0);
 Result.X := Result.X - SendMessage(Handle, EM_LINEINDEX, -1, 0);
end;



Страницы: 1 вся ветка

Текущий архив: 2006.07.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.043 c
15-1150178594
Ega23
2006-06-13 10:03
2006.07.09
С Днём рождения! 13 июня


2-1150777702
Rubey
2006-06-20 08:28
2006.07.09
Связь таблиц при скроллинге


15-1149845579
ALEXD31
2006-06-09 13:32
2006.07.09
Обновление Windows 98 до Windows 2000


15-1150054402
Omar2002
2006-06-11 23:33
2006.07.09
Тока ща понял почему иногда такие бредовые вопросы задают :)


2-1151053682
elfebet
2006-06-23 13:08
2006.07.09
Не пойму ошибку и как выйти из ситуации.