![]() |
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 |
Re: Erstellen von Objektlisten während des Programmablaufs
Verwalte die Objektlisten doch auch in einer Objektliste.
|
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? |
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
|
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 |
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; |
Re: Erstellen von Objektlisten während des Programmablaufs
Zitat:
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) |
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 |
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:
![]() |
Re: Erstellen von Objektlisten während des Programmablaufs
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:21 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