2010-04-19 15 views
20

Czytałem, że Delphi miało otrzymać dla każdej pętli w Delphi 9. Czy ta funkcjonalność kiedykolwiek została wprowadzona w języku? Moje IDE Delphi 2009 wydaje się nie rozpoznawać każdej składni. Oto mój kod:Czy Delphi kiedykolwiek otrzymywał po każdej pętli?

procedure ProcessDirectory(p_Directory, p_Output : string); 
    var 
    files : TStringList; 
    filePath : string; 
    begin 
    files := GetSubfiles(p_Directory); 
    try 
     for (filePath in files.Strings) do 
     begin 
     // do something 
     end; 

    finally 
     files.Free; 
    end; 
    end; 
+7

masz to dokładnie prawo, z wyjątkiem nawiasów. Usuń je i powinno działać. –

+4

@Mason: nie do końca - powinien używać tylko plików, a nie plików.strings! –

+0

Ups! Dobry połów. –

Odpowiedz

41
procedure ProcessDirectory(p_Directory, p_Output : string); 
var 
    files : TStringList; 
    filePath : string; 
begin 
    files := GetSubfiles(p_Directory); 
    try 
    for filePath in files do 
    begin 
     // do something 
    end; 

    finally 
    files.Free; 
    end; 
end; 
26

Tak.

Ale to for..in

Spróbuj

var 
    s: string; 
    c: char; 

begin 
    s:=' Delphi Rocks!'; 
    for c in s do //<--- here is the interesting part 
    begin 
    Application.MainForm.Caption:=Application.MainForm.Caption+c; 
    Sleep(400); //delay a little to see how it works 
    end; 
+1

Myślałem, że zdecydowali się na .. zamiast zamiast .. każdego, aby nie dodawać kolejnego zarezerwowanego słowa kluczowego. W jest już zastrzeżonym słowem kluczowym. –

+5

Możliwe, ale bardziej prawdopodobne jest, że "każdy" w "dla każdego" nie zastąpi "w", ale będzie dodatkiem nadmiarowym ("dla każdego .. w", a "dla .. w"). Więc nie tylko nowe słowo kluczowe, ale zupełnie niepotrzebne. – Deltics

Powiązane problemy