AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Array Property Frage

Ein Thema von wurzelzwerg · begonnen am 7. Mär 2013 · letzter Beitrag vom 7. Mär 2013
Antwort Antwort
wurzelzwerg

Registriert seit: 19. Jun 2011
Ort: Ilmenau
111 Beiträge
 
Delphi XE5 Enterprise
 
#1

Array Property Frage

  Alt 7. Mär 2013, 20:12
Delphi-Version: 5
Hallo,
ich hab eine Klasse mit einer array property. Das array enthält records.
Hier mal das ganze vereinfacht.
Wieso kann ich den record-Werten nichts zuweisen?


Delphi-Quellcode:
type
  TRecA = record
    number1, number2: integer;
  end;

  TTest = class
  private
    FArray1: array [0 .. 10] of TRecA;
    function Get(index: integer): TRecA;
    procedure Put(index: integer; const value: TRecA);
  public
    property Array1[index: integer]: TRecA read Get write Put; default;
  end;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private

  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  test: TTest;

implementation

{$R *.dfm}

function TTest.Get(index: integer): TRecA;
begin
  Result:= FArray1[index];
end;

procedure TTest.Put(index: integer; const value: TRecA);
begin
  FArray1[index]:= value;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if test = nil then test:= TTest.Create;
  test.Array1[0].number1:= 10; // kann nicht zugewiesen werden
end;

Geändert von wurzelzwerg ( 7. Mär 2013 um 20:15 Uhr)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.685 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Array Property Frage

  Alt 7. Mär 2013, 20:36
Das Problem ist der Record, nicht das Array. Von der Property bekommst du eine Kopie des Records zurück, keine Referenz auf den im Array tatsächlich bestehenden. Du musst also entweder dem Array-Element einen ganzen neuen Record am Stück zuweisen, oder auf eine Klasse umsteigen. (Bei einer Klasse würde eine Referenz von der Property geliefert, und es ginge so wie du es hier vor hast.)
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
wurzelzwerg

Registriert seit: 19. Jun 2011
Ort: Ilmenau
111 Beiträge
 
Delphi XE5 Enterprise
 
#3

AW: Array Property Frage

  Alt 7. Mär 2013, 22:14
Danke, alles klar.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz