Bug dans le TCheckListBox ?
Bonjour,
J'ai un TcheckListbox que je remet à jour à la volé.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
// 1° je vide mon checkListbox
edtDetailLock.Items.clear;
// JE recupere les donné que je veux mettre dedans. Le resultat est un set de TSvtDetailLock.
FEnabledLocked := [];
for AShapeIndex := Low(TSvtGridShapeType) to High(TSvtGridShapeType) do begin
if AShapeIndex in FMode then begin
FLocked.LockedEnabled(AShapeIndex, FEnabledLocked, False);
end;
end;
// 3° pour toutes mes valeurs désirez, je teste si je doit ajouter la valeur et je l'ajoute si necessaire
for AIndex := Low(TSvtDetailLock) to High(TSvtDetailLock) do begin
if AIndex in FEnabledLocked then begin
AName := FLocked.LockedName[AIndex];
AI := edtDetailLock.Items.Count;
edtDetailLock.Items.Add(AName);
// en théorie, ce teste est inutil, mais il m'indique le problème
if AI <> edtDetailLock.Items.Count then
edtDetailLock.Checked[AI] := FLocked.LockedValue[AIndex]
end;
end; |
Si l'utilisateur à un comportement absurde, et qu'il ne cesse de changer les valeurs (selectionner un curseur de track bar et aller d'un bout a l'autre de l'écran allez retour sans jamais s'arréter. Fair mumuse quoi mais il faut bien aussi prévoir ce cas).
Le TCheckboxList finit par se laisser dépasser par les événement et par ne pas ajouter les éléments quand je fais "edtDetailLock.Items.Add(AName);".
Je pense qu'il doit se perdre dans un nombre de message trop important ou arrivant en desordre, mais je n'es suis pas sur.
quelqun connait il ce problème ?
Merçi