E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen (Delphi)
Nach oben zu Fehler- und Warnungsmeldungen (Delphi)
Bei einem Variablenparameter muss das eigentliche Argument genau denselben Typ wie der formale Parameter aufweisen.
program Produce; procedure SwapBytes(var B1, B2: Byte); var Temp: Byte; begin Temp := B1; B1 := B2; B2 := Temp; end; var C1, C2: 0..255; (*Dem Typ Byte ähnlich, jedoch NICHT identisch*) begin SwapBytes(C1,C2); (*<-- Hier die Fehlermeldung*) end.
Die Argumente C1 und C2 sind für SwapBytes nicht annehmbar, obwohl sie genau dieselbe Speicherdarstellung und denselben Bereich wie ein Byte aufweisen.
program Solve; procedure SwapBytes(var B1, B2: Byte); var Temp: Byte; begin Temp := B1; B1 := B2; B2 := Temp; end; var C1, C2: Byte; begin SwapBytes(C1,C2); (*<-- Hier keine Fehlermeldung*) end.
Sie müssen also tatsächlich C1 und C2 als Bytes deklarieren, damit dieses Beispiel compiliert werden kann.