Fehler beim Definieren von Konstanten in Delphi

8

Ich versuche in Delphi ein Konst zu definieren (Delphi 2005), das auf anderen Konstanten basiert, aber Delphi beklagt sich darüber, dass es kein konstanter Ausdruck ist. So sieht mein Code aus:

%Vor%

Ich könnte ArraySize = Xpoints * Ypoints machen, aber das sqrt verursacht Probleme. Die Idee ist, dass ich möchte, dass das Array nach den Konstanten Xpoints und Ypoints sortiert wird. Ich könnte so etwas tun:

%Vor%

Achten Sie darauf, die Quadratwurzelwerte für die Trunc etwas zu überschätzen. Alles wird korrekt aktualisiert, wenn ich sqrtXpoints oder sqrtYpoints ändere, aber dieser Ansatz scheint einfach so ... dumm.

Als vorübergehende Lösung kann ich die Konstante selbst so auswerten:

%Vor%

aber ich mag das nicht, da ArraySize nicht automatisch aktualisiert wird, wenn ich Xpoints oder Ypoints ändere.

Es scheint, als ob der Compiler wissen sollte, wie man eine Konstante, die als mathematische Funktion einer anderen Konstante definiert ist, zur Kompilierzeit für Dinge wie das obige Beispiel und für einfachere Dinge wie diese auswerten kann:

%Vor%

aber ich kann es nicht akzeptieren. Irgendwelche Vorschläge? Vielen Dank im Voraus für Ihre Hilfe!

    
Michael Saeger 26.08.2013, 20:04
quelle

1 Antwort

7

Delphi erlaubt nicht, die meisten Funktionen bei der Definition von Konstanten zu verwenden. Aber Sie können es einfach lösen, verwenden Sie einfach dynamische Arrays und Sie können alles aus Ihrem Code berechnen:

%Vor%     
Andrei Galatyn 26.08.2013, 20:12
quelle

Tags und Links