Zitat von
Christian Seehase:
Moin Stoxx,
vielleicht hättest Du noch dazu schreiben sollen, dass es:
- nicht mit jeder Delphi Version funktioniert (D2006 geht, D7 geht nicht)
- die Option "zuweisbare typisierte Konstanten" aktiviert sein muss, damit man dann auch etwas zuweisen kann (aber wer aktiviert das )
ich sollte mich berichtigen, das ist nicht das was ich suchte.
Denn dummerweise entspricht "i" einer (Klassen)-Variable ( von Records ).
Der Record hat eine eigene Klassenvariable, die für alle Variablen dieses Types gelten.
Wenn man den Wert "i" ändert, dann ändert man dummerweise jede Variable i von allen Variablen dieses Types TMyRecord. Witzige Geschichte.
Zitat:
(aber wer aktiviert das
)
ich aktiviere das !
Alldieweil nur so Statische Variablen in Delphi mögich sind möglich sind. Eine procdure kann ihre eigene statische Variable haben. ( geht auch bei älteren Delphi versionen)
Anwendungsfall: Generierung einer einmaligen ID.
Delphi-Quellcode:
function makeID : longint;
const
prevID : longint = 0; // static variable
var
sec : longint;
begin
sec := trunc( (date - 38000) * 1000000 + (Time * 1000000) );
if sec <= prevID
then sec := prevID + 1;
prevID := sec;
result:= sec;
end; // function makeid
sorry für die Falsch-Information, aber ich habs auch erst nach langer Fehlersuche gemerkt, dass const bei Records dann eine Klassenvariable darstellt.
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.