![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
У меня RichEdit. В него вставлятся (из буфера обмена) 4-х строчный стих.
Надо, чтобы если строки не помещаются в окно (лезут в 5, 6... линию), то подгонять их по размеру окна уменьшая шрифт. Ваш ход, знатоки |
|
#2
|
|||
|
|||
|
Код:
for i := 0 to RichEdit1.Lines.Count - 1 do if MaxWidth < RichEdit1.Canvas.TextWidth(RichEdit1.Lines.Strings[i]) then MaxWidth := RichEdit1.Canvas.TextWidth(RichEdit1.Lines.Strings[i]); Так ты получишь ширину самой длинной строки. |
|
#3
|
|||
|
|||
|
Цитата:
Верю вам, что вы ведёте меня в верном направлении. А что мне делать дальше, имея ширину самой длинной строки. И вообще может получиться так, что каждая строка не помещается в одну линию. Тогда надо все их уменьшать. |
|
#4
|
|||
|
|||
|
Цитата:
Цитата:
|
| Этот пользователь сказал Спасибо Pyro за это полезное сообщение: | ||
mpdasa (02.06.2012)
| ||
|
#5
|
|||
|
|||
|
Цитата:
Цитата:
Последний раз редактировалось mpdasa, 02.06.2012 в 19:41. |
|
#6
|
||||
|
||||
|
Ширина окна в пикселях - Form.ClientWidth.
А как они соотносятся - это уже твое решение. В твоем случае, видимо, ширина строки должна быть меньше или равна ширине окна. |
| Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
mpdasa (02.06.2012)
| ||
|
#7
|
|||
|
|||
|
Ширина окна должна быть равна ширине строки+отступы
|
| Этот пользователь сказал Спасибо PS11011010 за это полезное сообщение: | ||
mpdasa (02.06.2012)
| ||
|
#8
|
|||
|
|||
|
Цитата:
|
|
#9
|
||||
|
||||
|
У него должен быть простой Width.
|
| Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
mpdasa (03.06.2012)
| ||
|
#10
|
||||
|
||||
|
Width, просто Width
|
| Этот пользователь сказал Спасибо cotseec за это полезное сообщение: | ||
mpdasa (03.06.2012)
| ||
|
#11
|
|||
|
|||
|
Код:
Rect: TRect; SendMessage(RichEdit1.Handle,EM_GETRECT,0,LongInt(@Rect)); Rect.Top := Rect.Top+8; Rect.Left := Rect.Left+10; Rect.Right := Rect.Right-10; Rect.Bottom := Rect.Bottom-10; SendMessage(RichEdit1.Handle,EM_SETRECT,0,LongInt(@Rect)); RichEdit1.Refresh; |
|
#12
|
|||
|
|||
|
Цитата:
Цитата:
Это при том, что у меня есть строка: Код:
var canvas: TCanvas; |
|
#13
|
|||
|
|||
|
RichEdit.canvas и Canvas:TCanvas немного разные вещи
|