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

Вниз

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

 
абырвалГ   (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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
14-53701
syte_ser78
2004-01-30 14:47
2004.02.17
Опять глупый вопрос ....


1-53584
Max003
2004-02-08 15:48
2004.02.17
Как пеобразовать Real в String или Char


3-53426
}|{yk
2004-01-26 11:25
2004.02.17
В какой системной таблице находятся названия таблиц?


1-53522
turonix
2004-02-04 16:17
2004.02.17
Проблемы с компилятором


1-53629
Arsen
2004-02-05 23:10
2004.02.17
Сохранение Default имени в LogOn (Win2k/XP/NT4.0)