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

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

Отображаемый в Label текст [D7, Win95/98, WinXP]


Ilg ©   (2005-11-08 16:09:00) 

Здравствуйте!
Скажите можно ли каким-нибудь способом получить текст Label (Caption) в том виде, как он отображается? Поясню: допустим, установлено св-во WordWrap=true, и текст Caption отображается в несколько строк, хотя на самом деле представляет одну длинную строку. Как узнать кол-во строк при отображении?
Заранее, Большое Спасибо!


Суслик   (2005-11-09 10:56:00) [1]

я бы на всякий случай перед вызовом TextHeight явно установил font для canvas.


Leonid Troyanovsky   (2005-11-08 16:50:00) [2]


> Ilg   (08.11.05 16:09)  

>  установлено св-во WordWrap=true, и текст Caption отображается
> в несколько строк, хотя на самом деле представляет одну
> длинную строку. Как узнать кол-во строк при отображении?


Попробуй примерно так:


type
 TCrackLabel = class(TLabel);

procedure TForm1.Button1Click(Sender: TObject);
var
 arect: TRect;
 FontHeight: Longint;
begin
 FontHeight:=Label1.Canvas.TextHeight('Y');
 TCrackLabel(Label1).DoDrawText(arect, DT_CALCRECT);
 Caption := IntToStr(aRect.Bottom div FontHeight);
end;


--
Regards, LVT.


Наверх

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