我需要一个关于 Delphi 5 的小例子,说明无线电组中的项目文本如何在需要时换行。
我在 Delphi 2006 中通过访问按钮属性解决了它,但在 D5 中该属性不存在。
LE:除了 SetWindowLong 之外还有其他解决方案吗?
我需要一个关于 Delphi 5 的小例子,说明无线电组中的项目文本如何在需要时换行。
我在 Delphi 2006 中通过访问按钮属性解决了它,但在 D5 中该属性不存在。
LE:除了 SetWindowLong 之外还有其他解决方案吗?
在 Delphi 5 中,您可以通过遍历Controls
单选组的属性轻松获得按钮。但是你要怎么做才能让它们包裹起来呢?Delphi 5 单选按钮没有WordWrap
属性。
如果我是你,我会在组框中添加一堆单选按钮,而不是使用单选组。这使您可以准确控制您创建的单选按钮类别。然后派生您自己的单选按钮类并实现该WordWrap
属性。为此,您需要在 中添加BS_MULTILINE
样式CreateParams
,就像现代 Delphi 版本一样。
当然,您的答案中概述的方法也可以!
完毕。
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
rbs: DWORD;
rb: TRadioButton;
begin
with RadioGroup1 do
begin
for i := 0 to ControlCount-1 do
begin
rb := radiogroup1.controls[i] as TRadioButton;
rbs := GetWindowLong(rb.Handle, GWL_STYLE);
rbs := rbs or BS_MULTILINE or BS_TOP;
SetWindowLong(rb.Handle, GWL_STYLE, rbs);
end ;
Invalidate;
end ;
end;