Einzelnen Beitrag anzeigen

Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#8

AW: TCheckListBox.items.checked[n] alle auf einmal setzen?

  Alt 11. Apr 2018, 13:32
Da nimm CheckListBox.Checked[n] := CheckedMask[n];
Dein Aufruf über items[].checked löst ein Neuzeichnen aus, bin ich fast fest von überzeugt.
Sorry, das war nur ein Tippfehler, items[].checked gibt es gar nicht, verwende natürlich CheckListBox.Checked. Wird meiner Meinung nach trotzdem neugezeichnet. Ich bin einen Schritt weiter. Das Parent der CheckListBox hat die Eigenschaft Doublebuffered auf true gesetzt. Entfernt man diese Option, wird das Verhalten der CheckListBox deutlich schneller. s. Anhang mit langsamer Version.

Das ist so schon mal besser, ich könnte mir aber vorstellen, dass es bei Fällen mit mehr als 150 Einträgen immer noch ein ähnliches Problem geben könnte. Aber vermutlich gibts hier keine bessere Möglichkeit, als alle Checkboxen einzeln zu setzen.

Zitat von Uwe Raabe:
Das Neuzeichnen wird in TCheckListBox.SetChecked ausgelöst.

Oder reden wir hier nicht über VCL?
TCheckListBox.SetChecked kennt mein Delphi XE2 (noch) nicht? Wir reden über VCL.
Angehängte Dateien
Dateityp: zip Project2.zip (3,2 KB, 3x aufgerufen)
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS

Geändert von alleinherrscher (11. Apr 2018 um 13:37 Uhr)
  Mit Zitat antworten Zitat