AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Designfrage: initializing constant arrays
Thema durchsuchen
Ansicht
Themen-Optionen

Designfrage: initializing constant arrays

Offene Frage von "semo"
Ein Thema von semo · begonnen am 12. Nov 2009 · letzter Beitrag vom 12. Nov 2009
Antwort Antwort
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#1

Designfrage: initializing constant arrays

  Alt 12. Nov 2009, 10:23
Ich habe mal eine Designfrage:
ich habe ein const static Array:
Delphi-Quellcode:
type
  TMyColumn = record
    ColumnName: string;
    FieldType: TFieldType;
  end;

const
  My_Columns: array[0..2] of TMyColumn = (
    (ColumnName: 'bla0'; FieldType: ftInteger),
    (ColumnName: 'bla1'; FieldType: ftInteger),
    (ColumnName: 'bla2'; FieldType: ftInteger)
  );
Nun möchte ich die Inhalte dieses Arrays in ein weiteres Array aufnehmen.
Ich habe da an so was in der Art gedacht:

Delphi-Quellcode:
const
  My_ColumnsEx: array[0..3] of TMyColumn = MyColumns + (
    (ColumnName: 'bla3'; FieldType: ftInteger)
  );
Ich mag nicht den Quellcode für alle vordefinierten Columns kopieren müssen nur weil ich eine Spalte mehr in dem zweiten Array habe.
Also nicht so:
Delphi-Quellcode:
const
  My_ColumnsEx: array[0..3] of TMyColumn = (
    (ColumnName: 'bla0'; FieldType: ftInteger),
    (ColumnName: 'bla1'; FieldType: ftInteger),
    (ColumnName: 'bla2'; FieldType: ftInteger),
    (ColumnName: 'bla3'; FieldType: ftInteger)
  );
Hat jemand eine Idee?
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#2

Re: Designfrage: initializing constant arrays

  Alt 12. Nov 2009, 16:43
Zitat von M. Hassmann:
Ich habe mal eine Designfrage:
ich habe ein const static Array:
...
Ich mag nicht den Quellcode für alle vordefinierten Columns kopieren müssen nur weil ich eine Spalte mehr in dem zweiten Array habe.
Hat jemand eine Idee?
Hallo,
wäre es nicht einfacher, zuerst das grosse Array mit Konstanten zu füllen und dann den entsprechenden Teil in das kleine Array zu kopieren?

Gruss Reinhard
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Designfrage: initializing constant arrays

  Alt 12. Nov 2009, 19:24
Ich möchte nichts zur Laufzeit machen.
Beide Arrays sollen schon vordefiniert sein.

Hab mir halt heute die Frage gestellt, ob man den bereits definierten Inhalt des einen Arrays auch schon im zweiten Array verwenden kann.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#4

Re: Designfrage: initializing constant arrays

  Alt 12. Nov 2009, 19:31
über 'ne Include-Datei könnte man was machen, aber ansonsten geht es wohl nicht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Designfrage: initializing constant arrays

  Alt 12. Nov 2009, 20:07
Zitat von M. Hassmann:
Ich möchte nichts zur Laufzeit machen.
Wieso nicht? Dann wäre dein Problem gelöst.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Designfrage: initializing constant arrays

  Alt 12. Nov 2009, 20:11
Es ist ja "nur" eine Designfrage.
Der Einfachheit halber dupliziert man den Code oder erledigt dies zur Laufzeit.

Es hätte ja sein können, dass es formschöner zu lösen geht und ich mal wieder was dazulerne
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#7

Re: Designfrage: initializing constant arrays

  Alt 12. Nov 2009, 20:32
Delphi-Quellcode:
type
  TMyColumn = record
    ColumnName: string;
    FieldType: TFieldType;
  end;

const
  My_Columns: array[0..2] of TMyColumn = (
    {$I Data.inc}
  );



const
  My_ColumnsEx: array[0..3] of TMyColumn = (
    {$I Data.inc},
    (ColumnName: 'bla3'; FieldType: ftInteger)
  );


Data.inc
Delphi-Quellcode:
    (ColumnName: 'bla0'; FieldType: ftInteger),
    (ColumnName: 'bla1'; FieldType: ftInteger),
    (ColumnName: 'bla2'; FieldType: ftInteger)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#8

Re: Designfrage: initializing constant arrays

  Alt 12. Nov 2009, 20:48
Zitat von M. Hassmann:
Es hätte ja sein können, dass es formschöner zu lösen geht und ich mal wieder was dazulerne :-)
Hallo,

mal rein formal betrachtet - wenn die Arrays konstant sind (und bleiben), braucht du garkeine 2 davon. Also handelt es sich um einen Missbrauch von const, wozu Delphi leider einlädt. Aber elegant würde ich sowas nicht nennen, höchstens in dem Sinn, dass das Aufschweissen eines Tresors eleganter ist als das Sprengen.

Gruss Reinhard
  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 07:44 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