Forum: Object-Pascal / Delphi-Language
Delphi
by Rollo62,
17. Jun 2020
Ich denke CASE hat durchaus seine Berechtigung behalten, wenn mehrere, vieleicht > 3 Fälle bearbeitet werden müssen.
Das sollte immer schneller sein als sequentielles IF.
Falls du Recht hast das dies nicht schneller ist würde es doch bedeuten
das der Compiler das IF intern doch als Sprungtabelle optimiert, oder nicht ?
Schneller wäre vielleicht nur ein Auslagern in Prozeduren-Pointer,...
Forum: Object-Pascal / Delphi-Language
Delphi
by Rollo62,
16. Jun 2020
Das sehe ich auch als Lösung an, also konkreter mal so in der Art:
function TfrmEditor.GetZoomFactorAsPercent(
AZoomFactor: Single = 1): TibZoomFactorPercent;
begin
Result := TibZoomFactorPercent.Custom;
case Trunc(AZoomFactor * 100) of // Hier tritt der Fehler auf...
10: Result := TibZoomFactorPercent.Percent10;
25: Result := TibZoomFactorPercent.Percent25;
50:...