Bonjour,
J'ai un TcheckListbox que je remet à jour à la volé.
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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
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
Partager