1

目前TButtonGroup没有WordWrap房产。我正在寻找一种具有该功能的方法,但我对示例的搜索到目前为止没有产生任何结果。

我的问题是如何为按钮的标题添加自动换行功能,TButtonGroup?你能给我一个例子或引导我走上正确的道路吗?非常感谢您的回答!顺便说一句,我使用德尔福 XE3

4

1 回答 1

4

一个简单的自动换行已经发生,如果您在运行时更改标题,可以通过像这样编辑 DFM 来看到。

Items = <
  item
    Caption = 'Word'#13'Wrap'#13'3 Lines'
  end
  ...

但是使用 WordWrap 时,默认绘画看起来不太好。
您可以实现OnDrawButton,但这需要编写大量代码。
最快的方法是设置gboShowCaptionButtonOptionsfalse 并OnAfterDrawButton像这样实现:

procedure TForm1.ButtonGroup1AfterDrawButton(Sender: TObject; Index: Integer; Canvas: TCanvas; Rect: TRect; State: TButtonDrawState);
var
 s:String;
begin
   InFlateRect(Rect,-4,-4);
   s := TButtonGroup(Sender).Items[Index].Caption;
   Canvas.TextRect(Rect,s,[tfWordBreak,tfCenter]);
end;
于 2013-07-11T06:02:58.783 回答