我需要一个关于Delphi 5的小例子,说明如果需要的话,放射线组中的项目文本如何包装文本。
我通过访问按钮属性在Delphi 2006中解决了它,但在D5中,此属性不存在。
LE:除了SetWindowLong之外还有其他解决方案吗?
答案 0 :(得分:2)
完成。
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;
答案 1 :(得分:2)
通过迭代无线电组的Controls
属性,您可以在Delphi 5中轻松获得按钮。但是你要做什么才能让它们包裹起来呢? Delphi 5单选按钮没有WordWrap
属性。
如果我是你,我会在组合框中添加一堆单选按钮,而不是使用无线电组。这使您可以精确控制您创建的单选按钮类。然后派生自己的单选按钮类并实现WordWrap
属性。为此,您需要在BS_MULTILINE
中添加CreateParams
样式,就像现代Delphi版本一样。
当然,你的答案中概述的方法也会奏效!