我需要在Delphi 5上的一个小例子,如何在一个radiogroup存在项目的文本包装文本,如果需要。delphi - TRadioGroup与物品包装
我在Delphi 2006中通过访问buttons属性解决了它,但是在D5中这个属性不存在。
LE:有什么解决方案,除了SetWindowLong吗?
我需要在Delphi 5上的一个小例子,如何在一个radiogroup存在项目的文本包装文本,如果需要。delphi - TRadioGroup与物品包装
我在Delphi 2006中通过访问buttons属性解决了它,但是在D5中这个属性不存在。
LE:有什么解决方案,除了SetWindowLong吗?
完成。
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;
在Delphi 5中,您可以通过迭代广播组的Controls
属性来轻松获得按钮。但是,你打算怎么做才能让它们包裹? Delphi 5单选按钮没有WordWrap
属性。
如果我是你,我会添加一堆单选按钮到一个组框,而不是使用无线电组。这使您可以控制您创建的单选按钮类型。然后派生自己的单选按钮类并实现WordWrap
属性。要做到这一点,您需要在CreateParams
中添加BS_MULTILINE
样式,就像现代的Delphi版本一样。
当然,您的答案中概述的方法也可以!
这就是我做到的。+ 1 – RBA
顺便说一下,我写我的时候没有看到你的答案。我正在忙着探索我的旧版本的Delphi版本! –
如何做到这一点的迹象是非常有用的。我发布了这个问题,然后编写了代码。无论如何,你非常快! – RBA