Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie kann man ein Array leeren? (https://www.delphipraxis.net/165880-wie-kann-man-ein-array-leeren.html)

CreativeMD 19. Jan 2012 16:29

Wie kann man ein Array leeren?
 
Wie kann man ein Array leeren?

Deklaration:

Delphi-Quellcode:
Labels: Array [0 .. 100] of TLabel;

Mein Versuch

Delphi-Quellcode:
zahl3 := 0;
  while zahl3 <= 100 do
  begin
    If Assigned(Labels[zahl3]) then FreeAndNil(Labels[zahl3]);
    zahl3 := zahl3 + 1;
  end;
Aber nicht alle Labels sind mit Inhalt gefüllt.

Delphi-Quellcode:
Labels[zahl] := TLabel.Create(Form1);
          Labels[zahl].Parent := panels[zahl];
          Labels[zahl].Font.Name := 'Bauhaus';
          Labels[zahl].Font.Size := 12;
          Labels[zahl].Caption := '-Nicht verfügbar-';
          Labels[zahl].Top := 8;
          Labels[zahl].Left := 250;
          Labels[zahl].OnMouseEnter := Form1.PanelsOver;
          Labels[zahl].OnMouseLeave := Form1.PanelsLeave;
          Labels[zahl].Tag := zahl;
Es gibt leider eine Fehlermeldung.
Was mache ich falsch oder gibt es eine andere Lösung.

DeddyH 19. Jan 2012 16:35

AW: Wie kann man ein Array leeren?
 
Und welche Fehlermeldung? Ist der Array-Inhalt initial genullt worden?

Mavarik 19. Jan 2012 16:42

AW: Wie kann man ein Array leeren?
 
hmm

Delphi-Quellcode:
Fillchar(Labels[0],Sizeof(Labels],0);

Mavarik

shmia 19. Jan 2012 16:54

AW: Wie kann man ein Array leeren?
 
Es gibt übrigens höherwerte Datentypen als Arrays: Listen.
Der Kopf ist rund damit das Denken die Richtung ändern kann.

Bei einer Liste kann man einfach Elemente (z.B. TLabels) hinzufügen oder entfernen ohne
dass man sich um die Löcher kümmern müsste die beim Löschen aus einem Array zurückbleiben.

Eine Liste ändert dynamisch und automatisch seine Grösse während die Grösse eines Arrays vom Programmierer explizit geändert werden muss.

CreativeMD 19. Jan 2012 19:27

AW: Wie kann man ein Array leeren?
 
Zitat:

Zitat von Mavarik (Beitrag 1146732)
hmm

Delphi-Quellcode:
Fillchar(Labels[0],Sizeof(Labels],0);

Mavarik

Das macht zwar keine Fehler Meldung aber der Label geht auch net weg.
Zitat:

Zitat von shmia (Beitrag 1146734)
Es gibt übrigens höherwerte Datentypen als Arrays: Listen.
Der Kopf ist rund damit das Denken die Richtung ändern kann.

Bei einer Liste kann man einfach Elemente (z.B. TLabels) hinzufügen oder entfernen ohne
dass man sich um die Löcher kümmern müsste die beim Löschen aus einem Array zurückbleiben.

Eine Liste ändert dynamisch und automatisch seine Grösse während die Grösse eines Arrays vom Programmierer explizit geändert werden muss.

Meinst du damit eine ListBox. Erklär bitte genauer.

DeddyH 19. Jan 2012 19:31

AW: Wie kann man ein Array leeren?
 
Er meint eine Liste. Für Labels bietet sich z.B. eine TObjectList bzw. TComponentList an. Dafür musst Du die Unit Contnrs einbinden.

CreativeMD 19. Jan 2012 19:58

AW: Wie kann man ein Array leeren?
 
Solche Listen gibt es aber im normalen Delphi gar net.
Wo finde ich die?
und kann man auch dort Buttons reinmachen????

DeddyH 19. Jan 2012 20:06

AW: Wie kann man ein Array leeren?
 
Was ist ein "normales" Delphi? Hast Du die Unit Contnrs eingebunden?

[edit]
TObjectList
TComponentList
[/edit]

Luckie 19. Jan 2012 20:09

AW: Wie kann man ein Array leeren?
 
Natürlich gibt es die in Delphi. Und was ist für dich ein nicht normales Delphi?

CreativeMD 19. Jan 2012 20:13

AW: Wie kann man ein Array leeren?
 
achso ich dachte es wäre eine Vcl Komponente.
Aber wie kann ich sie benutzen bzw. ein Objekt hinzugüfen, z.b einen Button oder ein Label?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 Uhr.
Seite 1 von 3  1 23      

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