![]() |
Designfrage: initializing constant arrays
Ich habe mal eine Designfrage:
ich habe ein const static Array:
Delphi-Quellcode:
Nun möchte ich die Inhalte dieses Arrays in ein weiteres Array aufnehmen.
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) ); Ich habe da an so was in der Art gedacht:
Delphi-Quellcode:
Ich mag nicht den Quellcode für alle vordefinierten Columns kopieren müssen nur weil ich eine Spalte mehr in dem zweiten Array habe.
const
My_ColumnsEx: array[0..3] of TMyColumn = MyColumns + ( (ColumnName: 'bla3'; FieldType: ftInteger) ); Also nicht so:
Delphi-Quellcode:
Hat jemand eine Idee?
const
My_ColumnsEx: array[0..3] of TMyColumn = ( (ColumnName: 'bla0'; FieldType: ftInteger), (ColumnName: 'bla1'; FieldType: ftInteger), (ColumnName: 'bla2'; FieldType: ftInteger), (ColumnName: 'bla3'; FieldType: ftInteger) ); |
Re: Designfrage: initializing constant arrays
Zitat:
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 |
Re: Designfrage: initializing constant arrays
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. |
Re: Designfrage: initializing constant arrays
über 'ne Include-Datei könnte man was machen, aber ansonsten geht es wohl nicht.
|
Re: Designfrage: initializing constant arrays
Zitat:
|
Re: Designfrage: initializing constant arrays
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 :-) |
Re: Designfrage: initializing constant arrays
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) |
Re: Designfrage: initializing constant arrays
Zitat:
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:11 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