Édition: mise à jour en bas.TComboBoxEx Les éléments ne sont pas mis en retrait lorsqu'ils sont remplis au moment de l'exécution
J'espère que quelqu'un peut aider ici car il me fait tourner dans le virage!
Delphi 2009
J'ai une forme avec deux composants TComboxBoxEx sur elle
One I POPULATE à l'exécution avec le code suivant
procedure TForm1.btn1Click(Sender: TObject);
var
N: Integer;
begin
cb1.ItemsEx.Add.Caption := 'Test';
for N := 0 to 5 do
with cb1.ItemsEx.Add do
begin
Caption := 'Item ' + IntToStr(N);
Indent := 1;
end;
end;
l'autre, je POPULATE au moment de la conception en utilisant la même données et définissant les mêmes propriétés.
Les éléments de ce que je remplis lors de l'exécution ne sont pas du tout indentés, alors que ceux de l'heure de conception sont très nets.
Des idées? L'aide indique que ident est le nombre de pixels à indenter mais que ceux de conception sont indentés de plus d'un pixel même si l'indentation est définie sur 1.
La mise en retrait de 10, par exemple, dans le code ci-dessus a aucun effet.
Voici la section du DFM pour le moment de la conception comobo
object cb2: TComboBoxEx
Left = 184
Top = 8
Width = 145
Height = 22
ItemsEx = <
item
Caption = 'Test'
end
item
Caption = 'Item 0'
Indent = 1
end
item
Caption = 'Item 1'
Indent = 1
end
item
Caption = 'Item 2'
Indent = 1
end
item
Caption = 'Item 3'
Indent = 1
end
item
Caption = 'Item 4'
Indent = 1
end
item
Caption = 'Item 5'
Indent = 1
end>
ItemHeight = 16
TabOrder = 2
Text = 'cb1'
end
Mise à jour
Définition de la propriété des données de l'élément combo après la légende et tiret semble faire fonctionner.
procedure TForm1.btn1Click(Sender: TObject);
var
N: Integer;
begin
cb1.ItemsEx.Add.Caption := 'Test';
for N := 0 to 5 do
with cb1.ItemsEx.Add do
begin
Caption := 'Item ' + IntToStr(N);
Indent := 1;
Data := Pointer(N); // New Line
end;
end;
Un peu bizarre.
Je signalerais cela à QC si j'étais vous. –
Ouais je pense que je vais – Jamie