Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Erstellen von Objektlisten während des Programmablaufs (https://www.delphipraxis.net/138091-erstellen-von-objektlisten-waehrend-des-programmablaufs.html)

Optiplex 3. Aug 2009 14:13


Erstellen von Objektlisten während des Programmablaufs
 
Hallo DP'ler,

ich habe eine typisierte Objektliste. Beim Programmstart weis ich noch nicht wie viele während des Programmablauf von diesen Listen erstellt werden müssen (Usereingabe). Normalerweise werden Objektlisten in variablen hinterlegt und in FormCreate erstellt. Wie mache ich das wenn die Anzahl nicht bekannt ist. (Ich hoffe dass ich mich einigermaßen verständlich ausgedrückt habe.)

Danke und Gruß Dieter

Luckie 3. Aug 2009 14:15

Re: Erstellen von Objektlisten während des Programmablaufs
 
Verwalte die Objektlisten doch auch in einer Objektliste.

Ralf Kaiser 3. Aug 2009 15:27

Re: Erstellen von Objektlisten während des Programmablaufs
 
...oder erstelle die Objektlisten erst wenn der Benutzer die Anzahl eingegeben hat. Dann ist die Anzahl ja wieder bekannt.

Gibt es zwingende Gründe, warum sie unbedingt in FormCreate erstellt werden müssen?

tabl 3. Aug 2009 20:46

Re: Erstellen von Objektlisten während des Programmablaufs
 
versuch mal mit nen dynamischen array vom entsprechenden typ der jedesmal wenn ein neues objekt hinzugefügt wird die länge um 1 erhöht. funcs bei mir eig immer recht gut. zumi bei labelsund änlichen. wie das bei objektlisten aussieht ka, sollte aba auch funcsen

Optiplex 4. Aug 2009 06:27

Re: Erstellen von Objektlisten während des Programmablaufs
 
erstmal Danke für die Antworten.

@Lucki
Funktioniert denn das ? Wie spreche ich denn die einzelnen objekte über diese Listen an den ich habe ja dann eine Liste für die Listen und wie kann ich die einzelnen Objektlisten auseinanderhalten. Welche Liste soll man dafür verwenden TList oder TObjektlist. Meine Listen sind alle von Typ TObjectlist.

Hast du eventuell ein Beispiel für mich.

@ Alfi001
Da liegt das Problem, der User weis die Anzahl die er benötigt auch nicht. Nein die Listen müssen nicht unbedingt in der FormCreate erstellt werden.

@tabl
Dynamischer Array ? Für das verwalten der einzelnen Objekte benutze ich ja diese Objektlisten, ob man diese in einem Dynamischer Array wiederum verwalten kann? Hab ich noch nie Probiert.

Hast du eventuell ein kurzes Beispiel zur Hand?

Gruß Dieter

Blup 4. Aug 2009 07:15

Re: Erstellen von Objektlisten während des Programmablaufs
 
Beispiel:
Delphi-Quellcode:
FMeineListen := TObjectList.Create;

for i := 0 to Anzahl - 1 do
  FMeineListen.Add(TObjectList.Create);


function GetObjectList(AIndex: Integer): TObjectList;
begin
  Result := FMeineListen[AIndex] as TObjectList;
end;

GetObjectList(5).Add(TMeinObject.Create);

MeinObject := GetObjectList(5)[1] as TMeinObject;

Ralf Kaiser 4. Aug 2009 07:55

Re: Erstellen von Objektlisten während des Programmablaufs
 
Zitat:

Zitat von Optiplex
@ Alfi001
Da liegt das Problem, der User weis die Anzahl die er benötigt auch nicht. Nein die Listen müssen nicht unbedingt in der FormCreate erstellt werden.

Seltsam. Du hattest geschrieben "(Usereingabe)". Wie kann so eine Eingabe erfolgen wenn der Benutzer die Anzahl die er eingeben soll selbst nicht kennt? :gruebel:

Was ich meinte: An irgeneiner Stelle wird das Programm doch wissen "ich brauche jetzt 3 Listen". Erstell einfach an der Stelle, an der die Anzahl feststeht die Listen. (EGAL wie die Anzahl festgelegt wurde, durch Eingabe oder Berechnung oder sonstwie)

Optiplex 4. Aug 2009 08:14

Re: Erstellen von Objektlisten während des Programmablaufs
 
Danke Blup für dein Beispiel, wenn das so funkt wär das eine Lösung.

Ich habe gerade was gelesen, dass es eine TClasslist gibt, kennt sich jenmand damit aus. Hat diese Liste Vorteile gegeüber einer Objektliste bei der Verwaltung von Objektlisten.

@Alfi001
Der User kann sich jederzeit entscheiden noch eine Objektliste anzufangen, deshalb ist es nicht möglich dies abzufragen, zu berechnen oder sonstwie zu erfahren.

Gruß Dieter

Luckie 4. Aug 2009 08:32

Re: Erstellen von Objektlisten während des Programmablaufs
 
Du sprichst die ObjektListen wie in einem Array an. Da die Objekte in der Liste ja auch Objektlisten sind hast du praktisch ein zweidimensionales Array. Arrays würde ich nicht nehmen, da du dich da immer um den Speicher beim Freigeben kümmern musst. Eventuell hilft dir auch mein Tutorial über Containerklassen, denn das ist genau das, was du machen willst: http://www.michael-puff.de/Artikel/C...rKlassen.shtml

Ralf Kaiser 4. Aug 2009 08:50

Re: Erstellen von Objektlisten während des Programmablaufs
 
Zitat:

Zitat von Optiplex
@Alfi001
Der User kann sich jederzeit entscheiden noch eine Objektliste anzufangen, deshalb ist es nicht möglich dies abzufragen, zu berechnen oder sonstwie zu erfahren.

Dann erzeuge diese Objektliste genau dann wenn der Benutzer sich dafür entscheidet oder wenn es aus einem anderen Grund nötig werden sollte und speichere diese dann in einer anderen Objektliste oder einem Array (wie das geht oder was die Vor/Nachteile von Arrays oder Speicherung in einer Liste sind wurde ja hier im Thread bereits besprochen)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:28 Uhr.
Seite 1 von 2  1 2      

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