Code: Alles auswählen
public
property Sektoren: integer read FSektoren write SektorenWrite;
.......
procedure TKoerper.SektorenWrite(Sektoren: integer); inline;
begin
FSektoren := Sektoren;
if FSektoren < 5 then begin
FSektoren := 5;
end;
end;
Vorhin hatte ich anstelle der 5 eine 3, aber wen ich mit F9 starte, hat es immer noch 3 Sektoren.
Interessanterweise, wen ich ein paar Zeilen weiter unten was ändere, z.B. bei Ring, dann nimmt der Compiler diese Werte an.
Aber die oberen Zeilen bei SektorenWrite werden immer noch ignoriert.
Mache ich aber "Aufräumen und Kompilieren...", dann werden die Werte von SektorenWrite übernommen.
Ist dies ein Fehler des Kompilers und mache ich was falsch ?
Code: Alles auswählen
procedure TCylinder.WriteVertex;
var
vPos: integer;
begin
SetLength(vertex, FSektoren * 18);
SetLength(normale, FSektoren * 18);
KreisTabelleBerechnen;
vPos := 0;
Ring(1, 1, -1, 1, vPos);
vPos := FSektoren * 6;
Ring(1, 0, 1, 1, vPos);
vPos := vPos + FSektoren * 6;
Ring(0, 1, -1, -1, vPos);
inherited WriteVertex;
end;