Форум: "Основная";
Текущий архив: 2004.02.17;
Скачать: [xml.tar.bz2];
ВнизПоследняя видемая строка Найти похожие ветки
← →
абырвалГ (2004-02-08 15:34) [0]Как зделать так, чтоб текст (допустим из Edit"a) вставлялся в последнюю видемую строку в Memo, Memo меняет размер т.е. последняя строка может быть по-разному!
← →
Бином Ньютоныч (2004-02-08 17:19) [1]function GetBottomLine(Memo: TMemo): integer;
var
n: integer;
R: TRect;
Old: Thandle;
DC: HDC;
Sz: TSize;
begin
if Memo.Lines.Count = 0 then
begin
Result:=-1;
Exit;
end;
n:=SendMessage(Memo.Handle, EM_GETFIRSTVISIBLELINE, 0, 0);
SendMessage(Memo.Handle, EM_GETRECT, 0, integer(@R));
DC:=GetDC(Memo.Handle);
Old:=SelectObject(DC, Memo.Font.Handle);
GetTextExtentPoint32(DC, "W", 1, Sz);
SelectObject(DC, Old);
ReleaseDC(Memo.Handle, DC);
Result:=((R.Bottom - R.Top) + 1) div Sz.cy + n - 1;
if Result >= Memo.Lines.Count then
Result:=Memo.Lines.Count - 1;
end;
← →
MBo (2004-02-08 17:46) [2]n:=Memo1.Perform(EM_CharFromPos,0,MakeLParam(1,Memo1.ClientHeight-Memo1.Font.Size)) shr 16;
← →
Бином Ньютоныч (2004-02-08 20:41) [3]MBo ©
А ты попробуй [2] изменяя высоту Memo по 1 пикселю в пределах высоты строки. А потом еще размером и именем шрифта поиграй для полноты ощущений:)
← →
MBo (2004-02-09 06:20) [4]>Бином Ньютоныч
Угу, может быть нестыковочка ;)
Хотя при нескольких тестах мне не удалось ее добиться. Но не исключено.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.17;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c