Man kann die Memory Leaks vermeiden, indem man diesen Code einsetzt:
Code:
procedure TSimpleTagger.FormDestroy(Sender: TObject);
begin
MainAudioFile.Free;
end;
Alternativ kann man auch diesen Code verwenden:
Code:
MainAudioFile := AudioFileFactory.CreateAudioFile(FileListBox1.FileName);
try
if assigned(MainAudioFile) then
begin
MainAudioFile.ReadFromFile(FileListBox1.FileName);
EdtTitle.Text := MainAudioFile.Title;
EdtArtist.Text := MainAudioFile.Artist;
EdtAlbum.Text := MainAudioFile.Album;
EdtGenre.Text := MainAudioFile.Genre;
EdtYear.Text := MainAudioFile.Year;
EdtTrack.Text := MainAudioFile.Track;
Memo1.Clear;
Memo1.Lines.Add(Format('Type: %s', [MainAudioFile.FileTypeDescription]));
Memo1.Lines.Add(Format('FileSize %d Bytes', [MainAudioFile.FileSize]));
Memo1.Lines.Add(Format('Duration %d millisec', [MainAudioFile.Duration]));
Memo1.Lines.Add(Format('Bitrate %d kBit/s', [MainAudioFile.Bitrate div 1000]));
Memo1.Lines.Add(Format('Samplerate %d Hz', [MainAudioFile.Samplerate]));
Memo1.Lines.Add(Format('Channels: %d', [MainAudioFile.Channels]));
end
else
begin
EdtTitle.Text := '';
EdtArtist.Text := '';
EdtAlbum.Text := '';
EdtGenre.Text := '';
EdtYear.Text := '';
EdtTrack.Text := '';
Memo1.Clear;
end;
finally
MainAudioFile.Free;
end;
Geändert von PeterPanino, damit der Platz auf dem Bildschirm nicht so leer aussieht.