Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#6

Re: Einer Routine einen beliebigen Record übergeben

  Alt 28. Sep 2004, 17:08
Zitat von Luckie:
Kann man jetzt irgendwas konstruieren, dass man jeweils nur den Record entsprechend anpasst und den Rest zum Speichern und Laden so lassen kann? Würde einem viel Arbeit abnehmen. Hat da jemand eine Idee oder ansatz, wie man das machen könnte?
Wenn du dich von normalen Records verabschiedest und stattdessen etwas komplizierteres verwendest, dann geht das.
Ich habe mir mal vor einiger Zeit ein "typisiertes Variant-Array" gebastelt.
Man hat also ein Array vom Datentyp Variant wobei jedes Element entweder über einen Namen oder einen Indez angesprochen werden kann.
Bei der Initialisierung wird zusätzlich zum Namen und Index auch noch ein Datentyp mitgegeben.
Der Zugriff auf die Daten sieht z.B. so aus:
Delphi-Quellcode:
 
const
   list:array [0..8] of TVAitem =
   (
   (name:'ArtikelNr'; vartype: varString),
   (name:'ArtikelName'; vartype: varString),
   (name:'EAN13'; vartype: VarString),
   (name:'Menge'; vartype: varDouble),
   (name:'MengeUnit'; vartype: varString),
   (name:'BruttoGewicht';vartype: varDouble),
   (name:'NettoGewicht'; vartype: varDouble),
   (name:'AuftragsNr'; vartype: varString),
   (name:'EquipmentNr'; vartype: varString)
   );
begin
   va := TTypedVariantArray.Create(list);

   va.ValueByName['ArtikelNr'] := '4711';
   va.ValueByName['Menge'] := 150.0;
Da man die Anzahl der Elemente und alle Namen abfragen kann, ist es kein Problem die Daten
in eine INI-Datei zu speichern.
Angehängte Dateien
Dateityp: pas uvariantarray.pas (9,2 KB, 11x aufgerufen)
Andreas
  Mit Zitat antworten Zitat