![]() |
for ... in
Einfache Frage (wahrscheinlich) einfache Antwort, aber ich komm nicht drauf:
Warum geht diese for .. in konstrukt nicht ? (ich wollte es zum ersten mal benutzen, also nicht hauen ^^)
Delphi-Quellcode:
Fehler: do gefunden aber [ erwartet ... :gruebel:
procedure TForm1.FormCreate(Sender: TObject);
var Comp: TComponent; begin for Comp in Components do (Comp as TWinControl).DoubleBuffered := True; end; |
Re: for ... in
Hallo!
Ich kenne diese Form von for-Schleifen zwar nicht, aber sollte das eine Art "foreach"-Schleife sein? Das Schlüsselwort is überprüft normalerweise, ob eine Instanz von einer Bestimmten Klasse abstammt, und liefert also einen boolean zurück. Grüße Faux |
Re: for ... in
Ich habe keine Ahnung, um ehrlich zu sein, aber müsste es nicht so in der Art gehen?
Delphi-Quellcode:
Aber wie gesagt, ich kenne for..in auch nicht. :duck:
var i: integer;
Comp: TComponent; begin for i := 0 to Application.ComponentCount - 1 do begin Comp := Application.Components[i]; if Comp is TWinControl then (Comp as TWinControl).DoubleBuffered := true; end; end; |
Re: for ... in
Seit Delphi 2005 kennt Delphi auch das foreach Konstrukt, wie es aus PHP bekannt ist. Allerdings kenne ich davon nicht die genaue Syntax bzw. bin mir nicht sicher, ob dies nicht nur in .NET Anwendungen verfügbar ist. Mit der Suche findet man dann diesen Thread:
![]() |
Re: for ... in
Moin,
die Syntax ist an sich korrekt. So wie ich das sehe liegt das Problem darin, dass TForm.Components eine Array-Property ist, und somit keinen Enumerator hat, der fuer for..in aber notwaendig ist. Darin wirds wohl scheitern ;) Greetz alcaeus |
Re: for ... in
In dem von Lukie verlinken Thema gehts um .NET. Also nehme ich mal an, dass foreach nur in Delphi.NET hinzugefügt wurde, da es in der CLS vorausgesetzt wird.
Grüße Faux |
Re: for ... in
Zitat:
Greetz alcaeus |
Re: for ... in
Zitat:
|
Re: for ... in
Zitat:
|
Re: for ... in
Moin,
du koenntest aber versuchen, mit class helpers einen Enumerator fuer Components in TForm reinzuboxen, das duerfte theoretisch funktionieren. ;) Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 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