Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   constante in typen packen? (https://www.delphipraxis.net/58279-constante-typen-packen.html)

Taladan 4. Dez 2005 19:11


constante in typen packen?
 
Kann ich irgendwie eine Constante in einen typen packen?

z.b.

Delphi-Quellcode:
type
  FTest = class(System.Windows.Forms.Form)
  private
   const Items : array[0..1] of String = ('MU', 'KL');
  end;
Die möchte ich, weil ich verschiedene Konstaten auf unterschiedlichen Units verwende. Eines haben diese Units gemeinsam und zwar das sie alle den gleichen Typen eingebunden haben.

ichbins 4. Dez 2005 19:16

Re: constante in typen packen?
 
Das geht ab D2005 indem du einfach das const weglässt. Dann hast du eine Variable, in der von Anfang an die Werte gespeichert sind.

tigerman33 4. Dez 2005 19:17

Re: constante in typen packen?
 
Aber warum probierst du es nicht einfach aus? :gruebel:

//edit:
@ichbins:
mit const gehts aber auch.

Taladan 4. Dez 2005 19:24

Re: constante in typen packen?
 
Das habe ich, funktionert aber nicht. Wenn ich jetzt den Typen anzeige dann gibt es Items nicht

Delphi-Quellcode:
type
  FTest = class(System.Windows.Forms.Form)
  private
    Items : array[0..1] of String = ['MU', 'KL'];
  end;
Delphi-Quellcode:
Procedure Irgendwas;
var
  test : Ftest;
  I : Array of String;
begin
  test := FTest.Create;
  I := Ftest.Items; <- hier sagt mir Delphi das es dieses nicht gibt
end;
Edit: Funktioniert auch nur wenn ich die Klammer in eine Eckige verändere.
Edit2: Const weggenommen, dieses nicht funktioniert

ichbins 4. Dez 2005 19:30

Re: constante in typen packen?
 
Ich denke array[0..1] of string und array of string passen nicht ganz zusammen. versuch doch einmal s:=ftest.items[1] mit s:string.

tigerman33 4. Dez 2005 19:32

Re: constante in typen packen?
 
Also bei mir hat das funktioniert, mit genau dieser Syntax:

Delphi-Quellcode:
type TXX = class
     public
       const xx: array[0..1] of string = ('X','Y');
     end;
Und dass du die Items nicht sehen konntest, liegt wahrscheinlich daran, dass du sie als private deklariert hast.

Taladan 4. Dez 2005 19:43

Re: constante in typen packen?
 
Ist in Public drin. Ich habe mal dein zeile kopiert.

Diverse Dinge werden unterkringelt. u.a.
- Das erste , in der eingefügten Zeile
- sowie der erste constructor
- das end;

Fehlermeldungen erhalte ich über das Strukturfenster.
- ) erwartet, aber , erhalten in Zeile XX <- Das erste Komma
- Implementation erwartet, aber COnstructor erhalten in Zeile XX
- Begin erwaret aber end erhalten in Zeile XX
- . erwartet, aber ; erhalten in Zeile XX
- das Ende der Datei erwartet, aber bezeichner 'Globalisation' erhalten <- hinter implementation die USES System.Globalisation

PS: Ich programmiere im Moment mit .Net falls das interessant sein sollte. Wobei das hier doch eigendlich Delphi/Pascal Syntax sein sollte


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