Tak czy owak u mnie po odwroceniu kolejnosci na downto zaczelo dzialac.
Oto moj kod:
uses ShellApi;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject); //tworzenie testowych plikow do usuniecia
var
i:integer;
f:file;
fn:string;
begin
for i:=0 to 4 do
begin
fn:=Char(random(20)+65)+char(random(20)+65);
assignfile(f,fn);
Rewrite(f);
CloseFile(f);
ListBox1.Items.Add(fn);
end;
end;
procedure TForm1.Button1Click(Sender: TObject); //usuwanie plikow
var
R : TSHFileOpStruct;
i:integer;
begin
for i:=Pred(ListBox1.Items.Count) downto 0 do
begin
with R do
begin
Wnd:=Handle; // oznaczenie uchwytu
wFunc := FO_DELETE;// opcja
pFrom:=PAnsiChar(ListBox1.Items[i]); // z pliku
fFlags := FOF_ALLOWUNDO;
end;
SHFileOperation(R);
end;
end;