Boah...hast du mich jetzt erschreckt mit dem Titel
Id3v1Tag etc. scheinen bei dir ja globale Variablen zu sein. D.h. nach einem Id3v1Tag.ReadfromFile stehen da die Infos drin und bleiben da drin.
Ich habe jetzt den Code nicht im Kopf. Es kann sein, dass die Infofelder "Artist" etc. nicht gelöscht werden, wenn kein Tag vorhanden ist. Dein Problem sollte sich beheben lassen, wenn du vor dem Setzen der Listbox-Einträge überprüfst, ob "Id3v1Tag.exists".
Zu meiner Verteidigung: Bei ID3v2 werden die Felder ja scheinbar gelöscht. Den v1-Teil habe ich fast unverändert von tommie-lee's UltimaTag übernommen. Im Zweifelsfall ist also er Schuld
Ich werde aber demnächst mal über den Code drübergucken, und evtl. die Felder dann auf einen Leerstring zurücksetzen, wenn kein Tag gefunden wird, bzw. vor dem auslesen die Infos zurücksetzen. Ich melde mich dann nochmal
Edit: Uh, das ging schnell: Die Änderung sollte in einer Zeile erledigt sein: Füge in der Funktion TID3v1Tag.ReadFromStream am ANfang einfach eine Zeile
clear; ein. Die Zeile
FExists := False; kannst du dann weglassen. Dann sollte es klappen.
We are, we were and will not be.