Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.017 c
14-53772
Danilka
2004-01-20 10:02
2004.02.17
Стивен Кинг Темная Башня


1-53643
VID
2004-02-06 17:08
2004.02.17
Определить необходиму высоту для RichEdit


1-53511
Still_Swamp
2004-02-03 16:33
2004.02.17
Перестали работать ShortCut для TAction


1-53529
][ncognito
2004-01-31 00:12
2004.02.17
Как распечатать таблицу?


1-53471
Creator
2004-02-06 13:37
2004.02.17
Как зделать процес System ???




   Наверх