Ich brauche die Komponente zwar nicht

, aber du kannst deine Klasse noch etwas mehr an
OOP anpassen.
Beispiele:

Zitat von
Rastaman:
Alle Funktionen, die einen Integer als Rückgabewert haben, haben versagt (oder Winamp läuft nicht), wenn sie -1 zurück geben.
[...]
Funktionslist:
function Execute(params: String): Integer;
Führt Winamp mit Parametern aus. Der Pfad zur exe wird aus der Registry aus dem HKLU gelesen.
Wird der Wert nicht gefunden, gibt die Funktion ERROR_NOT_FOUND zurück.
Gibts es einen Fehler bei ShellExecute gibt sie ERROR_FAILED zurück. Wenn alles klappt, dann gibt sie 1 zurück.
Entferne den Rückgabewert und löse stattdessen eine
Exception aus, dann ist z.B. auch
Zitat:
haben versagt (oder Winamp läuft nicht)
eindeutig.

Zitat von
Rastaman:
function GetRepeatState: Integer;
[...]
function GetShuffleState: Integer;
[...]
procedure SetRepeatState(state: Integer);
[...]
procedure SetShuffleState(state: Integer);
Das schreit doch geradezu nach Properties

.
IsRunning, IsStreaming usw. könnte man noch in ein Set verpacken, wie z.B. TComponent.ComponentState.