Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.453 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi XE - Denkfehler oder Bug? (Progressbar MinMax)

  Alt 22. Nov 2010, 13:07
Ich setze eine Progressbar in Form und stelle den Max Wert z.B. auf 5000 und den Min Wert auf 4000, die Postion springt dann ja automatisch auf 4000. Wenn ich das Projekt aber starte bekomme ich gleich die Fehlermeldung das Progressbar.Min außerhalb des gültigen Bereichs liegt

Wenn ich aber Max auf 100 stelle und Min auf z.B. 95 dann kommt der Fehler nicht. Woran liegt das?
Die Properties werden aus der DFM in der Reihenfolge ihrer Deklaration geladen (eigentlich gespeichert, aber beim Laden kommen sie dann halt auch in dieser Reihenfolge) - in diesem Fall kommt Min vor Max. Beim Setzen von Min wird aber überprüft, ob Max < Min ist und ggf. eine Exception ausgelöst. Daher funktioniert auch jeder Min-Wert bis 100, da Max mit 100 vorbesetzt wird.

Der Fehler ist einfach, daß diese Überprüfung eigentlich nicht während des Ladens aus der DFM (csLoading) ausgeführt werden sollte. Schreib doch einfach mal einen QC dafür.

Workaround: Setze die Properties im FormCreate, dort aber erst Max und danach Min.

Je nach verwendeter Comctl32.dll können die Werte auch noch auf einen Bereich 0..65535 (bei V5.x) beschränkt sein. Das sollte aber unter aktuellen Betriebssystemen eher selten der Fall sein.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat