Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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;


;)


Наверх

Титульная страница Поиск, карта сайта Написать письмо