delphi - 带有可包装物品的TRadioGroup

时间:2011-11-23 16:58:41

标签: delphi delphi-5 radio-group

我需要一个关于Delphi 5的小例子,说明如果需要的话,放射线组中的项目文本如何包装文本。

我通过访问按钮属性在Delphi 2006中解决了它,但在D5中,此属性不存在。

LE:除了SetWindowLong之外还有其他解决方案吗?

2 个答案:

答案 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版本一样。

当然,你的答案中概述的方法也会奏效!