![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TMemo высота [D7, WinXP]
Suvit © (2005-02-01 11:24:00)Уважаемые мастера, есть у меня в TMemo текст, причем он весь не влазит в memo, появляется скролл, вопрос такой как изменить высоты этого memo, чтобы влезал весь текст? Вопрос актуальный и для TRichEdit, хотя думаю делается это одинакого.
Suvit (2005-02-01 13:31:00) [1]хм, да onResizeRequest, то что надо
MBo (2005-02-01 13:24:00) [2]Для решения этой задачи для RichEdit нужно внимательно вглядеться в его события в Object Inspector
Suvit (2005-02-01 13:13:00) [3]ок, спасибо :))
пойду сразу на msdn
Shirson (2005-02-01 12:49:00) [4]тогда рыться в исходниках ричедита и смотреть, как там реализован отлов общей высоты.
Suvit (2005-02-01 12:24:00) [5]PageRect используется только в TCustomRichEdit.print, причем как я понял надо самому задавать эти логические размеры, а мне надо определить общюю высоту
Shirson (2005-02-01 12:19:00) [6]Это размеры логической страницы в пикселях.
Suvit (2005-02-01 12:16:00) [7]я так понял это нужно для печати, как это связано с моей задачей?
Shirson (2005-02-01 12:02:00) [8]PageRect не устраивает?
Suvit (2005-02-01 11:55:00) [9]хм, это не пойдем для TRichEdit потому что у него меняются шрифты, тем более для TRxRichEdit где можно вставлять OLE объекты, может есть какое то window сообщение, которое возврашает настоящюю высоту, как то ведь вертикальный скролл определяет ее ( эту высоту) ???
Shirson (2005-02-01 11:46:00) [10]Если фонт такой же, как и у формы, то можно так:
var
h:integer;
k:integer;
begin
k:=6;
h:=Canvas.TextHeight('Hy');
memo1.height:=memo1.lines.count*h + k
end;
где значение k подбирается экспериментально и учитывает толщины юордеров, границ, бевелов и всего прочего. (можно запрограммить на подсчёт, но это излишне, IMHO)