Hallo liebe Delphianer,
für eine Graphik, die in x- und y-Richtung nur bestimmte Abmessungen zulässt, versuche ich gerade, diese Abmessungen über ein UpDown in einem Editfeld darzustellen.
Die Graphik muss mindestens die Länge oder Breite von 12 Einheiten besitzen, von dort ausgehend kann sie jeweils um 8 Einheiten erweitert werden.
Dazu habe ich ein UpDown mit einem Editfeld assoziiert, dessen Position und Min-Wert auf 12 gesetzt, sowie das Increment auf 8.
Wenn ich jetzt den angezeigten Wert 12 durch Klick auf das UpDown um 8 inkrementieren will, erhöht sich dieser nicht wie beabsichtigt auf 20 sondern auf 24
, also so, als ob er von 0 ausgehend über 8 und 16 auf diesen Wert inkrementiert worden wäre.
Wie ist das zu erklären und kann ich dem UpDown doch noch das gewünchte Verhalten beibringen?
PS:
Natürlich könnte ich im Editfeld einfach die Anzahl der "Erweiterungsschritte" anzeigen lassen - also bei meinetwegen 0 angefangen jeweils um 1 inkrementieren, aber warum hat man beim UpDown die verschiedenen Einstellungsmöglichkeiten, wenn sie dann doch einen Workaround erfordern.
Wenn ich versuche, das ganze im OnClick-Ereignis des UpDown zu erledigen ...
Delphi-Quellcode:
case Button of
btNext: ud1.Position := ud1.Position + ud1.Increment;
btPrev: ud1.Position := ud1.Position - ud1.Increment;
end;
... sehe ich im Debugger, dass bei ud1.Position immer schon der falsch incrementierte Wert 24 ankommt und somit gar auf 32 inkrementiert wird. Stellt man Increment auf 0, wird offenbar das OnClick-Ereignis garnicht ausgelöst, sodass man dort auch keinen eigenen Wert setzen kann.
Vielen Dank für jeden Hinweis!
Wer fragt, ist ein Narr für 5 Minuten, wer nicht fragt, ist ein Narr ein Leben lang.