Форум: "Основная";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
ВнизНепонятности с определением координат курсора в 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;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.012 c