Hallo Community,
Ich habe hier eine Procedure, die ich aus einer eigenen
DLL ausführe:
Code:
procedure SavePLS(Filename: String; Listbox:TListbox; PathList:TStringList);
external 'DLL_Name.dll';
[...]
Procedure SavePLS(Filename: String; Listbox:TListbox; Pathlist:TStringList);
Const NumItems = 'NumberOfEntries';
Section = 'Playlist';
var sav:TiniFile; i,Total:Integer; F:TextFile; Buffer:String;
begin
if not DirectoryExists(ExtractFilePath(FileName)) then exit;
if ExtractFileExt(FileName)='.pls' then
begin
sav:=TiniFile.Create(Filename);
try
Total:=Pathlist.Count;
if Total>0 then
begin
sav.WriteInteger(Section,NumItems,Total);
sav.WriteInteger(Section,'Version',2);
for i:=0 to Total-1 do
begin
sav.WriteString(Section,'File'+IntToStr(i+1),Pathlist.Strings[i]);
sav.WriteString(Section,'Title'+IntToStr(i+1),Listbox.Items.Strings[i]);
//Ini.WriteInteger(Section,'Length' + IntToStr(i+1),Integer(FTime.Objects[i]));
end;
end;
finally
sav.Free;
end;
end;
if ExtractFileExt(FileName)='.m3u' then
begin
try
AssignFile(F,Filename);
Rewrite(F);
Writeln(F,'#EXTM3U');
for i:=0 to PathList.Count-1 do
begin
Buffer:=Format('#EXTINF:%d,%s',[-1 {Time},PathList.Strings[i]]);
WriteLn(F,Buffer);
WriteLn(F,Listbox.Items.Strings[i]);
end;
finally
CloseFile(F);
end;
end;
end;
Wenn ich diese Procedure beim OnClose-Ereignis ausführe, erscheint eine Fehlermeldung...ungefähr diese: '
Access Violation at Address [...], Write of Address [...]'. Nachdem ich die Procedure in mein Programm eingefügt und diese von dort aus ausgeführt hatte, erhielt ich keine Fehlermeldung mehr.
Könnt Ihr mir helfen, das Problem zu verstehen bzw. zu lösen?
mfg Nogge