问题描述
我想在运行时通过InitRadioGroup()过程设置RadioButton属性。
它失败,因为RadioGroup.ControlCount为0,尽管RadioGroup中有3个RadioButton。
D2010 RadioGroup有什么问题?
相同的代码在Delphi 2007中可以正常工作。
过程InitRadioGroup(RadioGroup:TRadioGroup);
var
i:整数;
RadioButton:TRadioButton;
for i:= 0到RadioGroup.ControlCount开始
-1做
Begin
RadioButton:=(RadioGroup.Controls [i]作为TRadioButton);
RadioButton.ParentColor:= False;
RadioButton.ParentFont:= False;
RadioButton.Font.Style:= [];
结尾;
我假设在您的手术过程中RadioGroup不可见叫做。因此,可能不会再创建RadioButtons。
调用 RadioGroup.HandleNeeded
应该可以为您解决这个问题。 / p>
I'd like to set RadioButton properties in runtime in procedure InitRadioGroup(). It fails because RadioGroup.ControlCount is 0, although there are 3 RadioButtons in RadioGroup.
What is wrong in D2010 RadioGroup? Same code works fine in Delphi 2007.
procedure InitRadioGroup(RadioGroup: TRadioGroup);
var
i: integer;
RadioButton: TRadioButton;
begin
for i := 0 to RadioGroup.ControlCount - 1 do
begin
RadioButton := (RadioGroup.Controls[i] as TRadioButton);
RadioButton.ParentColor := False;
RadioButton.ParentFont := False;
RadioButton.Font.Style := [];
end;
I assume that the RadioGroup is not visible when your procedure is called. So the RadioButtons may not be created then.
A call to RadioGroup.HandleNeeded
should fix this for you.
这篇关于Delphi 2010中RadioGroup.ControlCount的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!