Советы по Delphi

Кнопка с несколькими строчками текста I


Приведу способ, как сделать кнопку с тремя (или более) строчками текста. Разместите на форме компонент TBitBtn и задайте ему достаточно длинный заголовок. Не волнуйтесь о том, что такой длинный заголовок "раздувает" кнопку налево и направо. Создайте обработчик формы OnCreate как показано ниже:

    VAR R : TRect; N : Integer; Buff : ARRAY[0..255] OF Char; ...    WITH BitBtn1 DO BEGIN Glyph.Canvas.Font := Self.Font;

Glyph.Width  := Width-6; Glyph.Height := Height-6; R := Bounds(0,0,Glyph.Width,0); StrPCopy(Buff, Caption); Caption := ''; DrawText(Glyph.Canvas.Handle, Buff, StrLen(Buff), R, DT_CENTER OR DT_WORDBREAK OR DT_CALCRECT); OffsetRect(R, (Glyph.Width-R.Right) DIV 2, (Glyph.Height - R.Bottom) DIV 2); DrawText(Glyph.Canvas.Handle, Buff, StrLen(Buff), R, DT_CENTER OR DT_WORDBREAK); END;

Теперь у вас есть замечательная кнопка, которая научилась переносить текст!

- Neil [000636]



Содержание раздела