![]() |
Re: Array of TStringList erzeugen
Zitat:
Das größte Verständnisproblem bei TList und TObjectList ist bei mir jedoch, wie man einen Typen festlegen kann in einer TList oder TObjectList ;) Da hab ich nämlich noch nichts zu gefunden :oops: |
Re: Array of TStringList erzeugen
Du machst ne ableitung davon und machst für jede Methode ne neue mit deiner Klasse, da die ja von TObject abgeleitet ist, hast du damit kein Problem... :gruebel:
|
Re: Array of TStringList erzeugen
Delphi-Quellcode:
und mittels TypeCast
TObjectList.Items[Index: Integer]: TObject;
Delphi-Quellcode:
ich verwende viel TObjectList, dann muss ich mich nicht um das Freigeben der Objecte kümmern
TStringList(TObjectList.Items[Index]);
Delphi-Quellcode:
property OwnsObjects: Boolean;
|
Re: Array of TStringList erzeugen
Zitat:
Delphi-Quellcode:
:-D Und schon hast du keinen stress mit irgendwelchen blöden pseudo-dynamischen arrays!
var
l:TObjectList; ... l.add(DeinObj); ... deinAnderesObj := l[0] as TDeineKlasse; |
Re: Array of TStringList erzeugen
Zitat:
So da hast mal die wichtigsten:
Delphi-Quellcode:
Den Rest kannst dir ja selbst machen ^^
Unit MaloUtils;
Interface Uses Classes, SysUtils, Contnrs; Type TMaloObj = Class // Dein Obj halt... Private { Private-Deklarationen } Public { Public-Deklarationen } End; Type TMaloObjList = Class( TObjectList ) Private { Private-Deklarationen } Function GetItems( Index: Integer ): TMaloObj; Public { Public-Deklarationen } Procedure Insert( Const Index: Integer; Const MaloObj: TMaloObj ); Function Add( Const MaloObj: TMaloObj ): Integer; Property Items[ Index: Integer ]: TMaloObj Read GetItems; Default; End; Implementation { TMaloObjList } Function TMaloObjList.Add( Const MaloObj: TMaloObj ): Integer; Begin Result := Inherited Add( MaloObj ); End; Function TMaloObjList.GetItems( Index: Integer ): TMaloObj; Begin Result := Inherited Items[ Index ] As TMaloObj; End; Procedure TMaloObjList.Insert( Const Index: Integer; Const MaloObj: TMaloObj ); Begin Inherited Insert( Index, MaloObj ); End; End. Oder nimst Casts wie nen Blöder ^^ Meiner einer schreibt lieber ne Listen Klasse für, ist später lesbarer und schöner zu Warten :zwinker: Bye |
Re: Array of TStringList erzeugen
@Kedariodakon: Dafür kann man lieber eins von diesen tollen delphi-pseudo-templates machen, dann hat man mit vier zeilen code eine solche klasse generisch erzeugt und kann sich den wirklich wichtigen sachen widmen. -> siehe
![]() |
Re: Array of TStringList erzeugen
Irgendwie kapiere ich jetzt immer noch nichts... mit arrays geht das so:
Delphi-Quellcode:
Und mit Klassen muss ich irgendwelche Umwege über irgendwelche Klassen gehen? Wo ist da der Vorteil? Ich sehe da nur unnötige Arbeit drin.
type
TMyType = string; var: MeinArray: array of TMyType; begin TMyType[0] := 'Hallo Welt'; end; |
Re: Array of TStringList erzeugen
Zitat:
Man kann sie einfacher erweitern... Man kann einfacher Werte hinzufügen ( irgendwo irgendwan ^^ )... Man kann einfacher Werte herrauslöschen ( irgendwo irgendwan ^^ )... ... Bye |
Re: Array of TStringList erzeugen
Hallo malo,
das hat den Vorteil dass du ein Element aus dem Mitte der Liste loeschen kannst, ohne nachher das halbe Array verschieben musst. Das wird im Hintergrund fuer dich erledigt, und du kannst dich auf die wichtigen Dinge des Lebens konzentrieren :zwinker: Aber wie maximov gesagt hat, ich kann auch nur die templated Collections empfehlen. Bei einem Blick drauf fuehlt man sich irgendwie frisch verliebt :love: :lol: Greetz alcaeus |
Re: Array of TStringList erzeugen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 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