Pretty close to the way I'd do it:

[pascal]Destructor TOpenALSoundEngine.Destroy;
var
I: Integer;
begin
For I := Items.count -1 downto 0 do
Begin
Stop(I); // If it's playing avoid errors
Items[I].Free;
Items.delete(I);
End;
AlutExit();
End; [/pascal]

- I havn't tested it - just typed it in so if you use it test it first.