![]() |
Objekte gezielt aufrufen
Hallo, habe folgendes Problemchen:
Ich habe eine Klasse mit Feldern Zitat:
Zitat:
sprich wenn Zitat:
Zitat:
Kurz: Gibt es eine Methode mit der man das Ganze so ähnlich schreiben kann wie Zitat:
|
Re: Objekte gezielt aufrufen
Pack deine Objekte in eine
![]() |
Re: Objekte gezielt aufrufen
Erstmal danke!
Möchte mich an ein Beispiel hier aus dem Forum richten.
Delphi-Quellcode:
Bei mir kommt allerdings eine Fehlermeldung bei der Deklaration.
var
liste:TObjectlist; begin liste.add(TObjekt.create('Test1')); liste.add(TObjekt.create('Test2')); end; Was muss denn noch in den "Uses-Teil" damit TObjectlist deklariert werden kann? Edit: Hat sich erledigt!
Delphi-Quellcode:
Also nix uses ;)
type TObjectList = class (Classes.TList);
|
Re: Objekte gezielt aufrufen
Hallo!
Zuerst sollte irgendwo bevor auf die Liste zugegriffen wird ein
Delphi-Quellcode:
stehen.
list := TObjectList.Create;
Die uses Anweisung sollte um Contnrs erweitert werden. Grüße |
Re: Objekte gezielt aufrufen
Delphi-Quellcode:
Also doch uses ;)
uses Contnrs;
|
Re: Objekte gezielt aufrufen
Wenn in einem Beitrag etwas so hervorgehoben wird:
![]() Sherlock |
Re: Objekte gezielt aufrufen
Guten Morgen Sherlock, danke, hab es dann auch gemerkt :)
Jetzt hab ich allerdings doch noch ein Problem das in der Hilfe nciht geschildert wird. Ich möchte nämlich in jeder Zeile der Liste ein Array of TObject haben.
Delphi-Quellcode:
Interface
(...) type TObject = class(TObject) // Felder Field1: Single; Field2: Single; Field3: Integer; Field4: Integer; end; (...) var MyObject1: array[0..20] of TObject; MyObject2: array[0..20] of TObject; MyObject3: array[0..20] of TObject; MyObject3: ... liste: TObjectlist; Implemetation: MyObject1 := TObject.create; MyObject2 := TObject.create; MyObject3 := TObject.create; MyObject4 := ... Wie kann ich das jetzt mit einer Objectlist realisieren? Meine bescheide Anfänge wären:
Delphi-Quellcode:
Aber wie bekomme ich das mit Arrays hin?
Interface
(...) type TObjectList = class (Classes.TList) // Felder Field1: Single; Field2: Single; Field3: Integer; Field4: Integer; end; (...) var liste: TObjectlist; Implemetation: (...) begin liste.add(TObjekt.create('Test1')); liste.add(TObjekt.create('Test2')); end; |
Re: Objekte gezielt aufrufen
Also, leg doch in die ObjectList weitere ObjectLists.
Sherlock |
Re: Objekte gezielt aufrufen
Und nimm die aus der Unit Contnrs statt einer eigenen Implementierung. Btw: "TObject" als eigener Klassenname ist mehr als unglücklich.
|
Re: Objekte gezielt aufrufen
Delphi-Quellcode:
Allein wegen dieser beiden Zeilen ist das ganze bisher doch sowieso eher akademischer Natur.
liste.add(TObjekt.create('Test1'));
liste.add(TObjekt.create('Test2')); ;) Sherlock |
Re: Objekte gezielt aufrufen
Zitat:
Also eine Liste in einer Liste? Wie wird das denn realisiert? Und vor allem wie sprechen ich das Übergeordnete bzw. das Untergeordnete Objekt an? |
Re: Objekte gezielt aufrufen
TObjekt gibts halt nicht, das ist alles ;)
Sherlock |
Re: Objekte gezielt aufrufen
Ein Liste in einer Liste ... hmmm ... schauen wir uns das einmal an ...
Code:
Also als Ausgangspunkt haben wir eine TObjectList (klar, wir wollen ja Objekte in einer Liste haben)
Liste <--- TObjectList
+--Liste <--- TObjectList | +--Eintrag <--- TObject | +--Eintrag <--- TObject +--Eintrag <--- TObject +--Eintrag <--- TObject +--Liste <--- TObjectList +--Eintrag <--- TObject +--Liste <--- TObjectList +Eintrag <--- TObject Jetzt gibt es als gültige Listenelemente einmal TObject und weil wir ja nochmals Listen wollen auch TOobjectList. Das geht, weil
Code:
TObjectList ein Nachfahr von TObject ist, und eine TObjectList kann alle Elemente Speichern, die sich irgendwie von TObject ableiten lassen.
TObject
+--TList +--TObjectList Und das nennt man dann OOP. Wie kann man prüfen, ob das gefundene Objekt eine Liste ist:
Delphi-Quellcode:
cu
if Liste[ idx ] is TObjectList
then // Es ist eine Liste else // Es ist nur ein schnödes Objekt Oliver |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:47 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-2025 by Thomas Breitkreuz