Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   TPanel zur Laufzeit anlegen und löschen (https://www.delphipraxis.net/184717-tpanel-zur-laufzeit-anlegen-und-loeschen.html)

DeddyH 16. Apr 2015 18:50

AW: TPanel zur Laufzeit anlegen und löschen
 
Es geht ja nicht nur um die Länge, statische Arrays können ja durchaus mit einem Index <> 0 beginnen.

BadenPower 16. Apr 2015 18:50

AW: TPanel zur Laufzeit anlegen und löschen
 
Zitat:

Zitat von Helmi (Beitrag 1298040)
Delphi-Quellcode:
procedure TForm1.btn1Click(Sender: TObject);
var
   LPanel : TPanel;
   c : integer;
begin
   SetLength(Panels,10);
   for low(Panels) to high(Panels) do //<--
   begin
{ ...}
Wobei natürlich
Delphi-Quellcode:
low(Panels)
bei dynamischen Arrays auch durch eine 0 ersetzt werden kann

Wobei Dein Code-Beispiel mit statischen Arrays sowieso nicht funktionieren würde.

Dann kannst Du auch gleich bei
Delphi-Quellcode:
Length(Array) - 1
bleiben, da ein dynamisches Array immer bei 0 beginnt und der letzte Index immer Length-1 ist.

DeddyH 16. Apr 2015 18:53

AW: TPanel zur Laufzeit anlegen und löschen
 
Hier wiederhole ich mich gern (http://www.delphipraxis.net/1297845-post13.html):
Zitat:

Ich persönlich habe mir angewöhnt, stets die Varianten zu nehmen, die immer funktionieren. Neben den Ressourcenschutzblöcken sind das Dinge wie z.B. Arrays immer von Low() bis High() zu durchlaufen. Das hat den Vorteil, dass ich mir um solche Dinge wie "Kann das überhaupt im Konstruktor knallen bei dieser Klasse?" überhaupt keinen Kopf machen muss, sondern immer einen einheitlichen Stil verfolgen kann.

Helmi 16. Apr 2015 18:55

AW: TPanel zur Laufzeit anlegen und löschen
 
Zitat:

Zitat von BadenPower (Beitrag 1298050)
Wobei Dein Code-Beispiel mit statischen Arrays sowieso nicht funktionieren würde.

Dann kannst Du auch gleich bei
Delphi-Quellcode:
Length(Array) - 1
bleiben, da ein dynamisches Array immer bei 0 beginnt und der letzte Index immer Length-1 ist.

warum sollte das bei statischen Arrays nicht funktionieren?

DeddyH 16. Apr 2015 18:58

AW: TPanel zur Laufzeit anlegen und löschen
 
Sagen wir lieber: nicht immer. Ein statisches Array mit Startindex 0 sollte keine Probleme bereiten.

Helmi 16. Apr 2015 19:01

AW: TPanel zur Laufzeit anlegen und löschen
 
aber auch ein statisches Array mit Startindex <> 0 dürfte problemlos damit funktionieren
jedenfalls fällt mir auf die Schnelle kein Fall ein, wo das nicht so sein sollte

DeddyH 16. Apr 2015 19:02

AW: TPanel zur Laufzeit anlegen und löschen
 
*Äh* das bezog sich ja nicht auf Deinen Code, sondern auf das 0 bis Length - 1, sofern ich das richtig verstanden habe.

[edit] Achnee, BadenPower hat ja Dich zitiert. Dann würde mich aber auch mal ein Fall interessieren, wo das nicht funktionieren soll. [/edit]

BadenPower 16. Apr 2015 19:02

AW: TPanel zur Laufzeit anlegen und löschen
 
Zitat:

Zitat von Helmi (Beitrag 1298053)
warum sollte das bei statischen Arrays nicht funktionieren?

Hast Du einmal probiert ein statisches zur Laufzeit Array in der Größe zu verändern?

Delphi-Quellcode:
SetLength(StatischesArray,100);
funktioniert nicht.

Helmi 16. Apr 2015 19:05

AW: TPanel zur Laufzeit anlegen und löschen
 
schon klar - aber das ist noch keine Erklärung warum low und high bei einem statischen Array nicht funktionieren sollte

DeddyH 16. Apr 2015 19:05

AW: TPanel zur Laufzeit anlegen und löschen
 
Darum ging es aber doch auch gar nicht, sondern um die Indizes der Laufvariablen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr.
Seite 2 von 3     12 3      

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