![]() |
Delphi-Version: XE2
for...in für TObjectList
Hallo,
mit
Delphi-Quellcode:
kann man ja jedes Char eines String direkt über die for-Schleife auslesen
var
c: Char; S: String; begin S := 'hallo'; for c in S do ShowMessage(c); end; 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; |
AW: for...in für TObjectList
Für generische (Objekt-)Listen schon. Bei den normalen scheinbar nicht.
|
AW: for...in für TObjectList
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. |
AW: for...in für TObjectList
Ein kleines bisschen Typsicherheit wünscht sich das Delphi dann doch noch.
Sherlock |
AW: for...in für TObjectList
ah ok - danke!
Ist ein altes Projekt (noch mit Delphi 7 begonnen), daher noch die alten Typen |
AW: for...in für TObjectList
Zitat:
|
AW: for...in für TObjectList
Zitat:
|
AW: for...in für TObjectList
Wollte ich auch grade sagen.
Delphi-Quellcode:
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.
var
ObjectList: TObjectList; O: TObject; // <<<<< begin for O in ObjectList do; end; Nee, dem, der in der Ableitung den Enumerator vergessen hat. :stupid: 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. |
AW: for...in für TObjectList
Zitat:
|
AW: for...in für TObjectList
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:09 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