Du kannst ein
TMP3 oder
TVorbis als
TAudioEncoder behandeln, weil sie beide davon abgeleitet sind. Du kannst einen
TAudioEncoder nicht ohne weiteres als
TMP3 verwenden - es könnte ja auch ein
TVorbis sein, der die Variable Bitrate gar nicht hat.
Du kannst mit
is zur Laufzeit überprüfen, welchen Typ eine Variable hat und die weitere Verarbeitung davon abhängig machen, etwa so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| if Encoder[1] is TMP3 then begin TMP3(Encoder[1]).Bitrate := x; end else if Encoder[1] is TVorbis then begin ... end; |
Wenn du eine Typumwandlung wie
TMP3(Encoder[1]) machst, sollstest du dir sicher sein, dass
Encoder[1] auch wirklich ein TMP3 enthält. Wenn es ein TVorbis ist, kannst du schwer nachvollziehbare Laufzeitfehler wie Zugriffsverletzungen, unsinnige Daten und ähnliches kriegen. Eine andere Möglichkeit der Typumwandlung ist
(Encoder[1] as TMP3). Das ist etwas langsamer, überprüft aber wie
is, ob Encoder[1] wirklich ein TMP3 ist.
Stefan