Zitat von
Nils_13:
Das Problem ist, dass ich für jedes Format anders die Tags auslesen muss. Der obige Code liest nur MP3 aus.
Ja, aber warum arbeitest Du denn überhaupt mit Records.
Ich würd in etwa folgende Klassenhierarchie aufbauen (exemplarisch nur mit der Title Eigenschaft) :
Delphi-Quellcode:
type
TAudioFile = class
private
FTitle : string ;
FMusicFilename : string ;
public
constructor Create (AMusicFilename : string) ;
property Title : string read FTitle write FTitle ;
property MusicFilename : string read FMusicFilename write FMusicFilename ;
procedure Read ; virtual ; abstract ;
procedure Write ; virtual ; abstract ;
end ;
TMP3File = class (TAudioFile)
public
procedure Read ;
procedure Write ;
end ;
// TWAVFile = class (TAudioFile) ... analog TMP3File
implementation
constructor TAudioFile.Create (AMusicFilename : string) ;
begin
FMusicFilename := AMusicFilename ;
end ;
procedure TMP3Fil.Read ;
begin
// Hier die Informationen auslesen, und in die geeigneten Properties (Title) ablegen
end ;
procedure TMP3Fil.Write ;
begin
// Hier die Properties (Title) speichern
end ;
Die ganzen Audiofiles, egal in welchem Format sie vorliegen, würd ich in einer TObjectList speichern. Somit kannst du ganz bequem Audiofiles wie in einem Array verwalten, und musst nur jeweils die Read bzw. Write Methode aufrufen.
Vergiss also die Records und bau auf Objekte auf.