AGB  ·  Datenschutz  ·  Impressum  







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

for ... in

Ein Thema von jfheins · begonnen am 8. Jan 2006 · letzter Beitrag vom 8. Jan 2006
Antwort Antwort
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#1

for ... in

  Alt 8. Jan 2006, 22:35
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:
procedure TForm1.FormCreate(Sender: TObject);
var
  Comp: TComponent;
begin
  for Comp in Components do
    (Comp as TWinControl).DoubleBuffered := True;
end;
Fehler: do gefunden aber [ erwartet ...
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: for ... in

  Alt 8. Jan 2006, 22:37
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
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: for ... in

  Alt 8. Jan 2006, 22:42
Ich habe keine Ahnung, um ehrlich zu sein, aber müsste es nicht so in der Art gehen?

Delphi-Quellcode:
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;
Aber wie gesagt, ich kenne for..in auch nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: for ... in

  Alt 8. Jan 2006, 22:47
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: http://www.delphipraxis.net/internal...=390667#390667 etwas weiter unten ist dann auch von foreach die Rede.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

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

Re: for ... in

  Alt 8. Jan 2006, 22:49
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
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: for ... in

  Alt 8. Jan 2006, 22:50
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
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

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

Re: for ... in

  Alt 8. Jan 2006, 22:52
Zitat von faux:
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 im CLS vorausgesetzt wird.
Nein, es funktioniert auch in Delphi fuer Win32, allerdings nicht in diesem einen Fall. Die erweiterten Templates fuer die DPCollection (die aus meinem Tutorial) fuehren solche Enumeratoren ein, damit man die Collection mit for..in "durchwandern" kann

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

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

Re: for ... in

  Alt 8. Jan 2006, 22:52
Zitat von faux:
dass foreach nur in Delphi.NET hinzugefügt wurde
Borland hat das auch für Delphi Win32 implementiert.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#9

Re: for ... in

  Alt 8. Jan 2006, 22:57
Zitat von alcaeus:
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
Grmp ... daran liegts ... damit wäre das wohl erledigt
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

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

Re: for ... in

  Alt 8. Jan 2006, 23:01
Moin,

du koenntest aber versuchen, mit class helpers einen Enumerator fuer Components in TForm reinzuboxen, das duerfte theoretisch funktionieren.

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


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 23: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