![]() |
Delphi-Version: 7
TObjektList mit 2 oder mehr TObjekte
Hi, alle miteinander
Kurze Erklärung, Ich erstelle 2 Objekte, die ich in einer Objektliste verwalten möchte. Meine Frage: Wie erkenne ich, wie viele der einzelnen Objekte vorhanden sind? Es gibt ja leider kein getrenntes Add. Ich kann zwar anhand der Items feststellen wo und wie viele es gibt und sie dann als einzelne Counts zuordnen. z.B. CountRow, CountCol Ist aber nicht sehr nützlich da das ganze ja Dynamisch erzeugt wird und ich auf die Items zugreifen muss. Gibt es eine Möglichkeit das "add" zu trennen?? Das ganze muss auch noch gespeichert und gelesen werden!
Delphi-Quellcode:
Ich bin erst am Anfang von dem ganzen "ObjectList" usw.
type
TSoundRow = class(TObject) Soundfile: ShortString; SoundName: ShortString; SoundColor: TColor; CommentText: ShortString; CommentColor: TColor; CommentSize: Integer; SzeneText: ShortString; SzeneColor: TColor; ColIndex: Integer; Start: TTime; Anfang: TTime; Ende: TTime; LoopA: TTime; LoopE: TTime; VolA: Integer; VolE: Integer; FadeTime: real; FadeIn: Boolean; FadeOut: Boolean; FwStop: Boolean; end; TSoundCol = class(TObject) ColName: ShortString; ColColor: TColor; ColWidth: Integer; end; TAudioList = class(TObjectList) MasterName: ShortString; MasterColWidth: Integer; MasterColor: TColor; CommentName: ShortString; CommentColWidth: Integer; CommentNameColor: TColor; protected procedure SetRow(i: Integer; aSoundRow: TSoundRow); procedure SetCol(i: Integer; aSoundCol: TSoundCol); function GetRow(i: Integer): TSoundRow; function GetCol(i: Integer): TSoundCol; function getRowCount: Integer; function getColCount: Integer; public property SounRow[i: Integer]: TSoundRow read GetRow write SetRow; property SoundCol[i: Integer]: TSoundCol read GetCol write SetCol; property CountRow: Integer read getRowCount; property CountCol: Integer read getColCount; // function addSoundRow(Aobjekt: TSoundRow): Integer; // function addSoundCol(Aobjekt: TSoundCol): Integer; // procedure SaveToFile(const Fname: string); // procedure LoadFromFile(const Fname: string); end; Vieles gelesen die hälfte nur verstanden, also fängt man mal an:wink: Ich hoffe ihr könnt mir helfen. Gruß alfold |
AW: TObjektList mit 2 oder mehr TObjekte
![]() Der Sinn hinter getrennten Counts ergibt sich mir nicht. Aber das musst du selber wissen (oder erfragen). Grüße Dalai |
AW: TObjektList mit 2 oder mehr TObjekte
Zitat:
gruß alfold |
AW: TObjektList mit 2 oder mehr TObjekte
Es macht keinen Sinn dann nur eine Liste zu benutzen. Wie wäre es, wenn du einfach zwei Listen innerhalb deiner Klasse nutzt statt von einer TObjectList abzuleiten?
Und wenn du z.B. die kostenlose aktuelle Community Edition benutzen könntest, könntest du auch eine TObjectList<TSoundCol> und eine TObjectList<TSoundRow> benutzen ohne zu casten. |
AW: TObjektList mit 2 oder mehr TObjekte
Zitat:
Wenn Du unterschiedliche Objekte in einer Liste verwalten willst, kannst Du sie nur dort gleich behandeln wo sie auch gleich sind. Gruß K-H |
AW: TObjektList mit 2 oder mehr TObjekte
Zitat:
Hätt ja sein können das man da dran drehen kann!? In etwa so
Delphi-Quellcode:
function addSoundRow(Aobjekt: TSoundRow): Integer;
function addSoundCol(Aobjekt: TSoundCol): Integer; Zitat:
Wird hoffentlich kein Problem dann beim Speichern ???. Gruß alfold |
AW: TObjektList mit 2 oder mehr TObjekte
Zum erkennen wieviele Objekte vom jeweiligen Typ vorhanden sind könntest du folgendes machen (Code inkomplett aber die Vorgehensweise sollte klar sein):
Delphi-Quellcode:
for i:=0 to Count-1 do
If Items[i] is TSoundRow then... |
AW: TObjektList mit 2 oder mehr TObjekte
Hallo,
warum soll es ein Speicher-Problem geben? Du schreibst den Speichern-Code ja auch, oder? |
AW: TObjektList mit 2 oder mehr TObjekte
Zitat:
Zitat:
Zitat:
Stell ich mir sehr komplex vor dies in eine Datei zu Speichern. Wie gesagt hab ich noch nie gemacht, bis dato. Totzdem Danke an alle, hab jetzt noch ein 2 property hinzugefügt als itemindex. Hätt ich gleich machen sollen:wink: Gruß alfold |
AW: TObjektList mit 2 oder mehr TObjekte
Zitat:
Ein anderer Fall wäre, dass du auf ein Object mit einem bestimmten ItemIndex zugreifen möchtest, dieses aber in Wirklichkeit von einem anderen Typen ist, da sich durch das Löschen von Elementen die Reihenfolge verschoben hat. Also spätestens beim Cast auf ein anderes Object bzw. beim Zugriff auf eine Property dieses Objects knallt es dann. Also hast du nur zwei Möglichkeiten:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:36 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