Delphi-PRAXiS
Seite 2 von 3     12 3      

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)

Luckie 19. Jan 2012 19:21

AW: Wie kann man ein Array leeren?
 
Google, Sucher, erster Treffer: "delphi TObjectList"

DeddyH 19. Jan 2012 19:22

AW: Wie kann man ein Array leeren?
 
Ist das zuviel verlangt, einmal einen Blick in die Hilfe oder die DP-Suchfunktion zu werfen? Ich meine, XE 2 Architect im Profil und sich dann alles vorkauen zu lassen geht irgendwie nicht zusammen, oder?

Luckie 19. Jan 2012 19:24

AW: Wie kann man ein Array leeren?
 
Oder http://www.delphipraxis.net/dp_reference.php nach TObjetList suchen.

DeddyH 19. Jan 2012 19:33

AW: Wie kann man ein Array leeren?
 
Hab ich doch sogar schon verlinkt ;)

himitsu 19. Jan 2012 20:25

AW: Wie kann man ein Array leeren?
 
Ich mag die geheimen OH-Tags ... passend zur unbekannten F1-Taste. :stupid:
Delphi-Referenz durchsuchenTObjectList

CreativeMD 21. Jan 2012 10:15

AW: Wie kann man ein Array leeren?
 
Sorry aber in all diesen Links war keine einzige Antwort zu meiner Frage :(.
Ich habe auch schon in google gesucht.

DeddyH 21. Jan 2012 11:48

AW: Wie kann man ein Array leeren?
 
So?
Zitat:

• class Contnrs.TObjectList » [DE] [FR]
• function Contnrs.TObjectList.Add » [DE] [FR]
• constructor Contnrs.TObjectList.Create » [DE] [FR]
• destructor Contnrs.TObjectList.Destroy » [DE] [FR]
• function Contnrs.TObjectList.Extract » [DE] [FR]
• function Contnrs.TObjectList.ExtractItem » [DE] [FR]
• function Contnrs.TObjectList.FindInstanceOf » [DE] [FR]
• function Contnrs.TObjectList.First » [DE] [FR]
• function Contnrs.TObjectList.GetItem » [DE] [FR]
• function Contnrs.TObjectList.IndexOf » [DE] [FR]
• function Contnrs.TObjectList.IndexOfItem » [DE] [FR]
• procedure Contnrs.TObjectList.Insert » [DE] [FR]
• property Contnrs.TObjectList.Items » [DE] [FR]
• function Contnrs.TObjectList.Last » [DE] [FR]
• procedure Contnrs.TObjectList.Notify » [DE] [FR]
• property Contnrs.TObjectList.OwnsObjects » [DE] [FR]
• function Contnrs.TObjectList.Remove » [DE] [FR]
• function Contnrs.TObjectList.RemoveItem » [DE] [FR]
• procedure Contnrs.TObjectList.SetItem » [DE] [FR]
Da kann man sogar draufklicken (vorzugsweise jeweils unter [DE]) :cyclops:.

CreativeMD 22. Jan 2012 14:26

AW: Wie kann man ein Array leeren?
 
Danke ich weiß aber immer noch net.
Ich ich ein bestimmtes objekt einbinde.
Add(TButton) funktioniert net
Add(Labels[zahl]) funktioniert auch net
wie mache ich das?

Sir Rufo 22. Jan 2012 14:37

AW: Wie kann man ein Array leeren?
 
Hier die Deklaration
Delphi-Quellcode:
uses
  Contnrs;

// statt Labels : array[0..100] of TLabel;
type
  TForm1 = class( TForm )
  ..
  private
    Labels : TList;
  end;

..

implementation

..

procedure TForm1.FormCreate( Sender : TObject );
begin
  Labels := TObjectList.Create;
end;

procedure TForm1.FormDestroy( Sender : TObject );
begin
  // Alle enthaltenen Objekte (hier die Labels) werden automatisch entsorgt
  Labels.Free;
end;

procedure TForm1.Button1Click( Sender : TObject );
var
  idx : integer;
  lbl : TLabel;
begin
  for idx := 1 to 100 do
  begin
    lbl := TLabel.Create( nil ); // keinen Owner angeben!!! Die Labels-Liste kümmert sich um die Freigabe!
    lbl.Parent := Self; // oder wer auch immer
    lbl.Caption := 'Hallo';
    ..
    Labels.Add( lbl );
  end;
end;

Furtbichler 22. Jan 2012 14:38

AW: Wie kann man ein Array leeren?
 
Poste mal deinen Code.
Ich glaube, Du hast die 100 Label erzeugt und willst nun, das sie wieder verschwinden. Da reicht es natürlich nicht das Array oder die Liste oder die Objektliste oder was auch immer dein Container ist, zu nullen.

Um die Label zu erzeugen, instantiierst Du sie mit dem Konstruktor.
Um die Label zu entfernen, gibst Du es mit dem Destruktor frei.

Um ein Label unsichtbar zu machen, setzt Du Visible auf False oder entfernst den Text (Caption).

Der Konstruktor heißt Create, und der Destruktor heißt... Destroy.

Und weil Delphi nun mal ein wenig rumgefrickelei ist, verwendet man nicht den Destruktor direkt, sondern etwas, das viel toller ist, nämlich "Free".
Das macht das Gleiche, prüft aber vorher auf Nil.

Wenn Du das hier nicht verstanden hast, solltest Du erst einmal die grundlegenden Grundlagen von Delphi lernen.


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

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