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 Of Record? (https://www.delphipraxis.net/16989-array-record.html)

cyberkiller0072001 26. Feb 2004 17:15


Array Of Record?
 
Ich möchte in einer class(Tobject)
ein Array of TReason erstellen:

Delphi-Quellcode:
  TReason = record
   Targetx, targety, points: integer;
   why:(away, attack);
  end;
Aber dass will nicht...

Markus K. 26. Feb 2004 17:21

Re: Array Of Record?
 
Hallo cyberkiller0072001,
du kannst es ja mal folgend versuchen.

Delphi-Quellcode:
type TReason = Record
     ...
     end;

var Reason: Array[1..n] of TReason;
Hoffe das es funzt.

Tschüß Markus

cyberkiller0072001 26. Feb 2004 17:40

Re: Array Of Record?
 
Irgendwie läuft hier gar nix:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

  TReason = record
   Targetx, targety, points: integer;
   why:(aways, attacks);
  end;

  TFigurtyp =(K,D,S,L,T,B,E);
  TPlayercolor =(clwhite,clblack);


  TFigur = class(Tobject)
  private
    Fx: integer;
    Fcolor: TPlayercolor;
    Falive: boolean;
    FAengste: integer;
    Fy: integer;
    Fvalue: integer;
    Fkind: TFigurtyp;
    procedure Setx(const Value: integer);
    procedure SetAengste(const Value: integer);
    procedure Setalive(const Value: boolean);
    procedure Setcolor(const Value: TPlayercolor);
    procedure Setkind(const Value: TFigurtyp);
    procedure Setvalue(const Value: integer);
    procedure Sety(const Value: integer);
  private
  public
  TReasons:record
     Targetx, targety, points: integer;
     why:(away, attack);
    end;
    property color: TPlayercolor read Fcolor write Setcolor;
    property x: integer read Fx write Setx;
    property y:integer read Fy write Sety;
    property kind: TFigurtyp read Fkind write Setkind;
    property alive:boolean read Falive write Setalive;
    property Aengste: integer read FAengste write SetAengste;
    property value: integer read Fvalue write Setvalue;
    constructor create(aowner: tobject);//override;
  end;
 

var
  Form1: TForm1;
  Figuren: Array[0..64] of TFigur;
implementation

{$R *.DFM}

{ TFigur }

constructor TFigur.create(Aowner: Tobject);
begin
inherited create{(Aowner)};
end;

procedure TFigur.SetAengste(const Value: integer);
begin
  FAengste := Value;
end;

procedure TFigur.Setalive(const Value: boolean);
begin
  Falive := Value;
end;

procedure TFigur.Setcolor(const Value: Tplayercolor);
begin
  Fcolor := Value;
end;

procedure TFigur.Setkind(const Value: TFigurtyp);
begin
  Fkind := Value;
end;

procedure TFigur.Setvalue(const Value: integer);
begin
  Fvalue := Value;
end;



procedure TFigur.Setx(const Value: integer);
begin
  Fx := Value;
end;

procedure TFigur.Sety(const Value: integer);
begin
  Fy := Value;
end;

procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin

for i:=0 to 31 do figuren[i].create(form1);
showmessage(inttostr(i));
end;

end.
Weiß irgendjemand warum ich immer ne Fehlermeldung bekomme, wenn ich eine Figur erzeugen will...?
Vielen Dank im vorraus! Gruß Daniel

Markus K. 26. Feb 2004 17:47

Re: Array Of Record?
 
Was kommt denn für Fehlermeldung?

Jens Schumann 26. Feb 2004 17:54

Re: Array Of Record?
 
Zitat:

Zitat von cyberkiller0072001
Irgendwie läuft hier gar nix:
Delphi-Quellcode:
...
  public
  TReasons:record
     Targetx, targety, points: integer;
     why:(away, attack);
    end;
    property color: TPlayercolor read Fcolor write Setcolor;
    property x: integer read Fx write Setx;
    property y:integer read Fy write Sety;
    property kind: TFigurtyp read Fkind write Setkind;
...

Warum steht da eine Typendeklaration mitten in einer Klassendeklaration ??
Mich wundert, dass D7 keinen Fehler meldet.

Zitat:

Zitat von cyberkiller0072001
Irgendwie läuft hier gar nix:
Delphi-Quellcode:
    property Aengste: integer read FAengste write SetAengste;
    property value: integer read Fvalue write Setvalue;
    constructor create(aowner: tobject);//override;
  end;
...

constructoren, destructoren und methoden sollten vor den properties stehen.
Zitat:

Zitat von cyberkiller0072001
Irgendwie läuft hier gar nix:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin

for i:=0 to 31 do
  begin
  figuren[i]:=TFigur.create(form1); // Hier war Dein Fehler
  showmessage(inttostr(i));
  end
end;

end.
...


cyberkiller0072001 26. Feb 2004 18:23

Re: Array Of Record?
 
Is ja schon mal nicht schlecht...hab gestern erst mal mit klassen angefangen aber hierfür brauch ich die halt! Vielen Dank

cyberkiller0072001 26. Feb 2004 18:32

Re: Array Of Record?
 
Delphi-Quellcode:
property Willweg: Array of TReason;
bringt mir aber immer nur ein
Zitat:

[Fehler] [Fehler] Unit1.pas(45): Bezeichner erwartet, aber 'ARRAY' gefunden
sonst nix... wie soll das sonst gehen?

Jens Schumann 26. Feb 2004 18:35

Re: Array Of Record?
 
Hallo cyberkiller0072001
such mal in der OH nach dem Stichwort Array Eigenschaften


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:03 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