![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Размер текста [D7, XP]
{ент © (2007-11-21 15:47:00)У меня есть memo(размер мемо не изменяется) и в нём текст. Мне нужно если текст выходит за пределы видимости то размер текста уменьшался так что бы он весь был виден. Или нужно сделать полосу прокрутки. Помогите мне пожалуйста, я пишу программу для школьной научной выставки.
Amoeba (2007-11-21 16:49:00) [1]
> Мне нужно если текст выходит за пределы видимости то размер
> текста уменьшался
И до какого предела ему уменьшаться? Вобщем, бред...
Так что просто настрой нужным образом у Memo св-ва WordWrap и/или ScrollBars, и будет тебе счастье.
Johnmen (2007-11-21 16:10:00) [2]
> @!!ex © (21.11.07 16:00) [4]
> WordWrap не меняет размер текста.
Пофигу :)
@!!ex (2007-11-21 16:00:00) [3]> [1] Johnmen © (21.11.07 15:54)
> [2] Amoeba © (21.11.07 15:54)
WordWrap не меняет размер текста.
@!!ex (2007-11-21 15:59:00) [4]1) Скролл:
Memo.ScrollBars:=ssBoth;
2) Изменение размера. Что-то типа:
OnChange:
var
S:String;
Size:TSize;
begin
S:=GetMaxString; //Получаем самую длинною строку, как - сам думай, методов масса.
while Form.Canvas.TextWidth(S)>Memo.Width do begin
Memo.Font.Size:=Memo.Font.Size-1;
Form.Canvas.Font:=Memo.Font;
end;
end;
Кэнвасу формы присваиваем шрифт Memo для того, чтобы можно было узнать ширину текста, а это можно сделать только через DC, которого у Memo Нету.
По хорошему нужно создавать отдельный DC и с ним работать, пользуя процедуру:
GetTextExtentPoint32
Johnmen (2007-11-21 15:54:00) [5]WordWrap
Amoeba (2007-11-21 15:54:00) [6]Настрой нужным образом у Memo св-ва WordWrap и/или ScrollBars