Du kannst einen typlosen paramater verwenden
siehe dazu die Move Prozedur.
procedure Move(const Source; var Dest; Count: Integer);
_
Oder TStream read Methode
function TStream.Read(var Buffer; Count: Longint): Longint;
Du bekommst dann ein Stückspeicher, aber du musst dich vollständig selbst darum kümmern wie du es behandelst.... wenn du es nur verschlüsseln oder bewegen willst es aber ideal.
Dann gäbe es noch den Variant typ als paramaeter. Da kann man quasi alles übergeben.
Siehe die Locate Methode von TDataset
function TFDDataSet.Locate(const AKeyFields: string; const AKeyValues: Variant; AOptions: TLocateOptions = []): Boolean;
_
Wenn du die Auswahl an möglichen Typen kennst, dann kannst du eventuell auch mit einem Varianten Record arbeiten.
Delphi-Quellcode:
type
TFahrzeugList = (Irgendeins, PKW, LKW, Bus, Motorad, Zug);
TFahrzeug = record
case Fahrzeug: TFahrzeugList of
PKW: (MaxSpeed: Integer;
Cabrio:Boolean;
DieselFuel:Boolean;
);
LKW: (MaxTonage: Single;
Trailer:Boolean;
);
Bus: (Travelers:Integer;
Toilet:Boolean;
);
Motorad: (Speed: integer;
Sidecar:Boolean;
HP:integer;
);
Zug: (Passengers:integer;
Cars:integer;
Cargolist:Tstringlist;
);
Irgendeins: ();
end;