Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.116 Beiträge
 
Delphi 12 Athens
 
#20

Re: Bekomme einfach kein globales "Array of Record"

  Alt 30. Sep 2009, 11:35
??? = Profilspeicher
du willst ja wohl diesen ändern

dieses SetLength gehört natürlich in eine Methode von TSpeicher



aber du gehst da komplett falsch ran, denn so kannst du nur ganze TProfil auslesen und vorallem ändern

Speicher.PProfilspeicher[i].Wert läßt sich zwar auslesen, aber nicht so setzen, da hier Get aufgerufen und der Record geholt würde, in welchem du zwar was ändern könntest, aber dieses wird danach dann wieder verworfen, da der Record nicht via Put zurückgespeichert würde.
Es wird immer nur jeweils einwas Put oder Get von Delphi aufgerufen ... nicht Beides!

PS: gehen würde es, wenn TProfil ein Object und kein Record wäre, da dort die Objekt-Variable und nicht das Objekt solber geliefert würde. (dort gibt es zwar kein PUT, aber das wäre nicht nötig, da ja direkt auf das Objekt zugegriffen würde und nicht auf eine Kopie, wie beim Record)

So hast du zugriff auf alle Felder und kannst diese auch ändern
Delphi-Quellcode:
TProfil = record
    Name, Option1, Option2 : String;
    Wert: integer;
  end;

TSpeicher = class
  private
    FProfilspeicher: Array of TProfil;
    FObjektspeicher: Array of TObject;
    function GetName(Index: Integer): TProfil;
    procedure PutName(Index: Integer; S: TProfil);
    ...
    procedure PutOption1(Index: Integer; S: TProfil);
  public
    Function Add(...): Integer; // Result ist dann der Index des Erstellten
    Procedure Delete(Index: Integer);
    property Name [index: integer]: String read GetName write PutName;
    property Option1[index: integer]: String read GetOption1 write PutOption1;
    property Option2[index: integer]: String read GetOption2 write PutOption2;
    property Wert [index: integer]: integer read GetWert write PutWert;

    property Objekt [index: integer]: TObject read GetObject;
  end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat