AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Array of TStringList erzeugen

Ein Thema von malo · begonnen am 1. Mai 2005 · letzter Beitrag vom 2. Mai 2005
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#11

Re: Array of TStringList erzeugen

  Alt 2. Mai 2005, 09:48
Zitat von Muetze1:
Moin!

Und warum nicht einfacher mit einer TObjectList aus der Contnrs.pas anstatt einem dynamischen Arrays?

MfG
Muetze1
Vielleicht, weil ich mich damit nicht auskenne?

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
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Array of TStringList erzeugen

  Alt 2. Mai 2005, 09:54
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...
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Array of TStringList erzeugen

  Alt 2. Mai 2005, 09:54
TObjectList.Items[Index: Integer]: TObject; und mittels TypeCast
TStringList(TObjectList.Items[Index]); ich verwende viel TObjectList, dann muss ich mich nicht um das Freigeben der Objecte kümmern
property OwnsObjects: Boolean;
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#14

Re: Array of TStringList erzeugen

  Alt 2. Mai 2005, 09:57
Zitat von malo:
Zitat von Muetze1:
Moin!

Und warum nicht einfacher mit einer TObjectList aus der Contnrs.pas anstatt einem dynamischen Arrays?

MfG
Muetze1
Vielleicht, weil ich mich damit nicht auskenne?

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
Was gibt es denn auszukennen. Die methoden der listen sind selbbeschreibend. Und das die typen sind halt nicht festgelegt, da TObjectList alle TObjects aufnimmt, die es bekommt. Wenn du nun auf die objekte der liste zugreifst, dann musst du ganz normal casten:
Delphi-Quellcode:
var
  l:TObjectList;
...
  l.add(DeinObj);
...
  deinAnderesObj := l[0] as TDeineKlasse;
Und schon hast du keinen stress mit irgendwelchen blöden pseudo-dynamischen arrays!
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Array of TStringList erzeugen

  Alt 2. Mai 2005, 10:02
Zitat von malo:
Vielleicht, weil ich mich damit nicht auskenne?

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


So da hast mal die wichtigsten:
Delphi-Quellcode:
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.
Den Rest kannst dir ja selbst machen ^^
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

Bye
Christian
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#16

Re: Array of TStringList erzeugen

  Alt 2. Mai 2005, 10:12
@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 dpCollection templatedpCollection template!
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#17

Re: Array of TStringList erzeugen

  Alt 2. Mai 2005, 10:13
Irgendwie kapiere ich jetzt immer noch nichts... mit arrays geht das so:

Delphi-Quellcode:
type
  TMyType = string;

var: MeinArray: array of TMyType;
begin
  TMyType[0] := 'Hallo Welt';
end;
Und mit Klassen muss ich irgendwelche Umwege über irgendwelche Klassen gehen? Wo ist da der Vorteil? Ich sehe da nur unnötige Arbeit drin.
  Mit Zitat antworten Zitat
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#18

Re: Array of TStringList erzeugen

  Alt 2. Mai 2005, 10:16
Zitat von malo:
Irgendwie kapiere ich jetzt immer noch nichts... mit arrays geht das so:

Delphi-Quellcode:
type
  TMyType = string;

var: MeinArray: array of TMyType;
begin
  TMyType[0] := 'Hallo Welt';
end;
Und mit Klassen muss ich irgendwelche Umwege über irgendwelche Klassen gehen? Wo ist da der Vorteil? Ich sehe da nur unnötige Arbeit drin.
Man kann sie einfacher sortieren...
Man kann sie einfacher erweitern...
Man kann einfacher Werte hinzufügen ( irgendwo irgendwan ^^ )...
Man kann einfacher Werte herrauslöschen ( irgendwo irgendwan ^^ )...
...

Bye
Christian
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#19

Re: Array of TStringList erzeugen

  Alt 2. Mai 2005, 10:16
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
Aber wie maximov gesagt hat, ich kann auch nur die templated Collections empfehlen. Bei einem Blick drauf fuehlt man sich irgendwie frisch verliebt

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von maximov
maximov

Registriert seit: 2. Okt 2003
Ort: Hamburg
548 Beiträge
 
Delphi 2005 Professional
 
#20

Re: Array of TStringList erzeugen

  Alt 2. Mai 2005, 10:17
Zitat von malo:
Irgendwie kapiere ich jetzt immer noch nichts... mit arrays geht das so:

Delphi-Quellcode:
type
  TMyType = string;

var: MeinArray: array of TMyType;
begin
  TMyType[0] := 'Hallo Welt';
end;
Und mit Klassen muss ich irgendwelche Umwege über irgendwelche Klassen gehen? Wo ist da der Vorteil? Ich sehe da nur unnötige Arbeit drin.
mal ehrlich! Schon das beispiel ist grob falsch, denn du hast vergessen das array zu vergrössern. Das zeigt auch schon warum eine klasse nicht so falsch wäre: Sie nimmt uns extrem viel arbeit ab, da sie sich selbst um solche sache kümmert und uns damit nicht belästigt. Was ist denn so schlimm an einer klasse?
mâxîmôv.

{KDT}
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:19 Uhr.
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