Кнопка с многострочным заголовком

Previous  Top  Next

    
 

 

Code:

procedure TForm1.Button1Click(Sender: TObject);

var

i: Integer;

begin

i := GetWindowLong(Button1.Handle, GWL_STYLE);

SetWindowLong(Button1.Handle, GWL_STYLE, i or BS_MULTILINE);

Button1.Caption := 'Delphi World - ' + #13#10 + 'ëó÷øå íå áûâàåò!';

end;

 

 

©Drkb::01246

http://delphiworld.narod.ru/

DelphiWorld 6.0

 


 

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

 

 

Code:

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;

 

 

 

©Drkb::01247

http://delphiworld.narod.ru/

DelphiWorld 6.0