Как сделать многострочную надпись на TBitBtn?

Выводите текст надписи непосредственно на "glyph" TBitBtn'а. См. пример.

procedure TForm1.FormCreate(Sender: TObject);
var
        R : TRect;
        N : Integer;
        Buff : array[0..255] of Char;
begin
        with BitBtn1 do
                begin
                        Caption := 'A really really long caption';
                        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;
end;
 
« Предыдущая статья   Следующая статья »