![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Autosize для RichEdit
faiwer © (2009-09-27 10:42:00)Нашёл много топиков с подобным вопросом, но только 1 ответ. В общем мне нужно задавать RichEdt-у такую высоту чтобы в нём не было скроллбара. текст Форматированный, разный. Единственно что я нашёл это вот это:
function RecommendedHeight(Handle:HWND;
MinHeight: integer; MaxHeight: integer): integer;
const
add = 50;
var
ScrollInfo: tagScrollInfo;
begin
assert(MaxHeight >= MinHeight);
ZeroMemory(@ScrollInfo, SizeOf(ScrollInfo));
ScrollInfo.cbSize := SizeOf(ScrollInfo);
ScrollInfo.fMask := SIF_RANGE;
GetScrollInfo(Handle, SB_VERT, ScrollInfo);
Result := ScrollInfo.nMax - ScrollInfo.nMin + add;
if Result<MaxHeight then Result:= MaxHeight;
end;
Код ориентируется на скроллбары. Но у этого кода минус, что он не может определить когда надо уменьшить высоту.
faiwer (2009-09-27 13:58:00) [1]2Anatoly Podgoretsky, :D тогда уж лучше обойтись одной строчкой:
Richedit1.visible:=false;
Тогда точно никаких скроллов не будет, инфа100%
Anatoly Podgoretsky (2009-09-27 12:26:00) [2]Сначала увеличиваем ширину и высоту до предела, затем начинаем умегьшать размер шрифта до микрон.
faiwer (2009-09-27 10:55:00) [3]//closed
на второй день поисков я всё таки нашёл. всё оказалось очень просто и не надо было городить таких странных кодов :D
procedure TMainF.RichEditResizeRequest(Sender: TObject; Rect: TRect);
begin
(Sender as TRichEdit).Height:=rect.Bottom;
end;
;)