Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Prism Deklaration von Array in Delphi8!? (https://www.delphipraxis.net/17950-deklaration-von-array-delphi8.html)

Yacoon 11. Mär 2004 22:09


Deklaration von Array in Delphi8!?
 
Hallo,

ich hatte dieses Thema bereits in ein Forum gepostet, das Problem besteht nach wie vor.
Den Verlauf dieser Diskussion kann man hier lesen:
http://www.delphiforum.de/viewtopic.php?t=23058

Wenn es nicht gestattet ist, soclh eine Link zu posten, dann tut es mir leid.

Jetzt zu dem Problem.
Ich schreibe mir gerade eine Klasse für .NET.
Jetzt möchte ich in der Klsse einen Array definieren, der aber auch gleich mit Werten bestückt wird und somit von vorn herein initialisiert ist. Dazu folgenden Code:

Code:
type
  MyClass = class (TObject)
    private
      aryDaten : array[0..14] of Integer = (0,32,64,96,128,160,192,224,256,288,320,352,384,416,448);
  end;
Ich bekomme immer als Fehlermeldung ", erwartet, aber = gefunden".
Kann mir jemand helfen. In D7 und darunter funktioniert eine solche deklaration eines Arrays. Was mach ich falsch?

Gruß

[edit=sakura] <pre> mit [pre] ersetzt, Mfg, sakura[/edit]

dizzy 11. Mär 2004 22:20

Re: Deklaration von Array in Delphi8!?
 
Ich lese aus dem vorangegangenen Thread, dass die Deklaration so wie du möchtest nicht geht!
Das geht nur bei Konstanten und globalen Variablen. Also wurde der "Workaround" mit dem Konstruktor genannt.

Delphi-Quellcode:
type
  TMyClass = class
    ar : array[0..4] of Integer;
    constructor Create;
  end;
.
.
.
constructor TMyClass.Create;
begin
  ar := (30, 20, 10, 40, 50);
end;
Wenn du dann eine Instanz erstellst, dann hat dein Array die gewünschten Werte. Es ist jedoch nachher veränderlich!
Das ist IMHO die einzige Möglichkeit Klassenfelder komplexer Typen zu initialisieren. Bei einfachen Typen könnte es so gehen, weiss ich aber grad net ;)

Gilt alles übrigends auch für D7!


gruss,
dizzy

\\edit 1+2: Wurstfingersyndrom...


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