2010-01-24 8 views
1

Je souhaite définir les propriétés RadioButton en exécution dans la procédure InitRadioGroup(). Il échoue car RadioGroup.ControlCount est 0, bien qu'il y ait 3 RadioButtons dans RadioGroup.Problème avec RadioGroup.ControlCount dans Delphi 2010

Qu'est-ce qui ne va pas dans D2010 RadioGroup? Même code fonctionne très bien en 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; 

Répondre

3

Je suppose que le RadioGroup n'est pas visible lorsque votre procédure est appelée. Donc les RadioButtons ne peuvent pas être créés alors.

Un appel à RadioGroup.HandleNeeded devrait résoudre ce problème pour vous.

+0

Vous avez raison. J'initialise de nombreux groupes Radio avant d'afficher un onglet où sont les radiogroupes. – pKarelian

+0

J'ai ajouté RadioGroup.HandleNeeded et c'est OK maintenant. Je vous remercie. – pKarelian