E2033 Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

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.