Einzelnen Beitrag anzeigen

QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.930 Beiträge
 
Delphi 12 Athens
 
#3

AW: Parameter mit multiplen Typen

  Alt 25. Jan 2024, 11:38
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;
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (25. Jan 2024 um 12:06 Uhr)
  Mit Zitat antworten Zitat