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 TComponent - Deklaration (https://www.delphipraxis.net/80295-array-tcomponent-deklaration.html)

Cöster 6. Nov 2006 20:02


array of TComponent - Deklaration
 
Hi!

Ich kriegs gerade nicht gebacken, nen array of TButton/Image oder was auch immer gleich bei der Deklaration zu füllen.

So hab ich mir das ungefähr vorgestellt:

Delphi-Quellcode:
Images: array of TImage = (Image1, Image2, Image3);
Dann kommt undefinierter Bezeichner: Image1

Kann man das nicht gleich bei der Deklaration zuweisen?

mkinzler 6. Nov 2006 20:03

Re: array of TComponent - Deklaration
 
Nein.

Cöster 6. Nov 2006 20:11

Re: array of TComponent - Deklaration
 
:( Und mit nem array of string geht das auch nicht, wie ich gerade merke???

mkinzler 6. Nov 2006 20:15

Re: array of TComponent - Deklaration
 
Eine Zuweisung bei Deklaration geht nur bei Konstanten.

xaromz 6. Nov 2006 20:16

Re: array of TComponent - Deklaration
 
Hallo,
Zitat:

Zitat von Cöster
:( Und mit nem array of string geht das auch nicht, wie ich gerade merke???

klar geht das, nur nicht mit einem dynamischen Array:
Delphi-Quellcode:
var
  Test: array[0..3] of String = ('ab', 'dfs', 'fd', 'ds');
Gruß
xaromz

Cöster 6. Nov 2006 20:40

Re: array of TComponent - Deklaration
 
Ah, geil, danke!!!

Delbor 6. Nov 2006 20:44

Re: array of TComponent - Deklaration
 
Hi Cöster
Delphi-Quellcode:
Images: array of TImage = (Image1, Image2, Image3);
Das kann so nicht funktionieren, da die Images vor der Zuweisung ans Array createt werden müssen. Du kannst aber das Array als Array of TImage deklarieren, die Images in der Createprozedur erzeugen und hier dem Array zuweisen.
Eine Konstante, wie von dir beabsichtigt, erhälst du dabei allerdings nicht. Ausserdem - ein Array of TImage (TComponent oder sonst einem Typen) ist ein typisiertes Array und kann ähnlich einer normalen Variablen während des Programmlaufs durchaus andere Werte erhalten.
Des weiteren wäre vielleicht zu bedenken, dass du nicht gerade viel an Performance gewinnst, wenn du zur Laufzeit sämtliche Komponenten-Namen auf Übereinstimung mit einem String-Array-Element überprüfst.

IMHO machten Konstanten vor allem in der historischen, strukturierten Programmierung Sinn, wo es durchaus möglich war, dass eine Variable durch einen Irrtum/fehlende Übersicht des Programmierers plötzlich einen anderen als den beabsichtigten Wert enthielt.

Gruss
Delbor

Thorben_K 7. Nov 2006 07:17

Re: array of TComponent - Deklaration
 
wie sagte man vater immer so schön:

"konstanten sind nur für sachen die du oft brauchst, und die sich vll irgendwann mal ändern, dann hast du es central am anfang und kannst es ändern, und das programm kann diese konstanten nichts verändern"

du erstellst aber keine konstante also hast du da doch eigentlich nichts von, ich würde ein normales array of TImages machen und im Form Create die Werte zuweisen :)


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