Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Array Eigenschaft mit record (https://www.delphipraxis.net/81729-array-eigenschaft-mit-record.html)

schuetzejanett 2. Dez 2006 18:46


Array Eigenschaft mit record
 
Hallo,
habe eine Klasse die eine Array Eigenschaft hat. Diese Eigenschaft ist vom typ TGame welcher ein record bestehend aus den Feldern field und anz ist.
Will ich jetzt den einzelnen Feldern etwas zuordnen sagt er mir immer der linken seite kann nichts zugeordnet werden. Was muss ich ändern ?

Hier der relevante code der beiden units

Delphi-Quellcode:
 
type TGame = record
  field : integer;
  anz :  integer;
  end;

type TPlayer = class(TObject)
  private
   f_name :String;
   f_stand:integer;
   f_games : array of Tgame;
   f_fields : array of integer;
   f_points : array of integer;

   
    function GetGames(index: integer): TGame;
   
    procedure SetGames(index: integer; const field , anz: TGame);
  public
    constructor Create(name : String);

   property games[index : integer]: TGame read GetGames write SetGames;

  end;
implementation

{ TPlayer }


constructor TPlayer.Create(name: String);
begin
SetName(name);
setLength(f_points,1);
setlength(f_games,1);
end;


function TPlayer.GetGames(index: integer): TGame;
begin
result := f_Games[index];
end;

procedure TPlayer.SetGames(index: integer; const Value: TGame);
begin
 if index > high(f_games)+1 then
    begin
     showMessage ('Falscher Index bei Tplayer.SetGames');
     exit;
    end
  else if index = length(f_games) then
    setlength(f_games,length(f_games));
  f_games[index] := value;
end;
und noch den code aus der Dart Klasse

Delphi-Quellcode:

 aspieler[i].games[0].field := 18;
    aspieler[i].games[0].anz := 1;

Namenloser 2. Dez 2006 18:54

Re: Array Eigenschaft mit record
 
Delphi-Quellcode:
type
  TGame = record
    field: integer;
    anz:  integer;
  end;

  TPlayer = class(TObject)
  private
    f_name:  String;
    f_stand: integer;
    f_games: array of Tgame;
    f_fields: array of integer;
    f_points: array of integer;

    function GetGames(index: integer): TGame;
    procedure SetGames(index: integer; agame: TGame);
  public
    constructor Create(name : String);
   
    property games[index : integer]: TGame read GetGames write SetGames;
  end;
implementation

{ TPlayer }

constructor TPlayer.Create(name: String);
begin
  SetName(name);
  setLength(f_points,1);
  setlength(f_games,1);
end;

function TPlayer.GetGames(index: integer): TGame;
begin
  result := f_Games[index];
end;

procedure TPlayer.SetGames(index: integer; agame: TGame);
begin
  if (index > high(f_games)+1) or (index < 0) then
  begin
   showMessage ('Falscher Index bei Tplayer.SetGames');
   exit;
  end
  else if index = length(f_games) then
    setlength(f_games,length(f_games));
  f_games[index] := agame;
end;
muss eig. funzen.

Hawkeye219 2. Dez 2006 19:14

Re: Array Eigenschaft mit record
 
Hi,

vielleicht hilft dir dieser Beitrag.

Gruß Hawkeye


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz