AGB  ·  Datenschutz  ·  Impressum  







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

for...in für TObjectList

Ein Thema von Helmi · begonnen am 3. Nov 2014 · letzter Beitrag vom 3. Nov 2014
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#1

for...in für TObjectList

  Alt 3. Nov 2014, 16:30
Delphi-Version: XE2
Hallo,

mit
Delphi-Quellcode:
var
  c: Char;
  S: String;

begin
  S := 'hallo';
  for c in S do
    ShowMessage(c);
end;
kann man ja jedes Char eines String direkt über die for-Schleife auslesen

Ist so was auch für eine TObjectList möglich?
Also so was in etwa:
Delphi-Quellcode:
var
  ObjectList: TObjectList;
  O: TObject;

begin
  for O in ObjectList do
//
end;
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: for...in für TObjectList

  Alt 3. Nov 2014, 16:35
Für generische (Objekt-)Listen schon. Bei den normalen scheinbar nicht.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#3

AW: for...in für TObjectList

  Alt 3. Nov 2014, 16:41
Bei den nicht-generischen Listen geht das nur mit einer Laufvariable vom Typ Pointer.

Delphi-Quellcode:
var
  ObjectList: TObjectList;
  O: Pointer;
begin
  for O in ObjectList do;
end;

Deswegen, und weil die generischen noch weitere Vorteile bieten, sollte man die alten Listen auch nicht mehr verwenden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.800 Beiträge
 
Delphi 12 Athens
 
#4

AW: for...in für TObjectList

  Alt 3. Nov 2014, 16:45
Ein kleines bisschen Typsicherheit wünscht sich das Delphi dann doch noch.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#5

AW: for...in für TObjectList

  Alt 3. Nov 2014, 16:47
ah ok - danke!
Ist ein altes Projekt (noch mit Delphi 7 begonnen), daher noch die alten Typen
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#6

AW: for...in für TObjectList

  Alt 3. Nov 2014, 16:48
Bei den nicht-generischen Listen geht das nur mit einer Laufvariable vom Typ Pointer.
Wäre bei einer TObjectList nicht 'Object' geeigneter bzw. richtig?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#7

AW: for...in für TObjectList

  Alt 3. Nov 2014, 16:55
Bei den nicht-generischen Listen geht das nur mit einer Laufvariable vom Typ Pointer.
Wäre bei einer TObjectList nicht 'Object' geeigneter bzw. richtig?
Sollte man diese Frage nicht besser dem Compilerbauer stellen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

AW: for...in für TObjectList

  Alt 3. Nov 2014, 17:00
Wollte ich auch grade sagen.
Delphi-Quellcode:
var
  ObjectList: TObjectList;
  O: TObject; // <<<<<
begin
  for O in ObjectList do;
end;
ABER, da TObjectList von TList abgeleitet ist, welches dort Pointer hat und der Enumerator vermutlich nur in TList-Deklariert und nicht überschrieben wurde, wird es hier wohl bei Pointer bleiben.

Nee, dem, der in der Ableitung den Enumerator vergessen hat.


Fazit: Warum haben die dort noch keinen Enumerator eingeführt?

Aber da Pointer ebenfalls mit IS und AS behandelt werden kann (wenn ich das noch richtig im Kopf hab), stört es hier nicht all zu sehr.
(und casten muß man oftmals sowieso, wo es dann egal ist ob man TObject->TMyObject oder Pointer->TMyObject machen muß)



PS: Wenn man will, kann mich sich auch selber einen Enumerator schreiben und den sogar generisch für die nichtgenerische TObjectList, wenn man es gern so mag.
$2B or not $2B

Geändert von himitsu ( 3. Nov 2014 um 17:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#9

AW: for...in für TObjectList

  Alt 3. Nov 2014, 17:54
Aber da Pointer ebenfalls mit IS und AS behandelt werden kann (wenn ich das noch richtig im Kopf hab), stört es hier nicht all zu sehr.
Da bist Du hast Du das nicht richtig im Kopf
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#10

AW: for...in für TObjectList

  Alt 3. Nov 2014, 18:06
Sollte man diese Frage nicht besser dem Compilerbauer stellen?
Ist der hier im Forum? [klugscheiß]Außerdem ist das der Schreiber der Klasse, der den Enumerator nicht richtig implementiert hat, nicht der Compilerbauer.[/klugscheiß]
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:52 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