Hi und herzlich Willkommen in der
DP
Die Funktion GetSongTimeInfo(stUp) liefert dir ein TBassSongInfo. Label3 ist nur die Referenz auf ein Label, die haben so also nicht viel mit einander gemeinsam (weswegen die Zuweisung scheitert).
An sich solltest du Label3 direkt nicht verändern. Unter dem Namen Label3 ist eigentlich nur die Adresse des Label gespeichert, änderst du hier etwas, würdest du nicht mehr auf das entsprechende Label zugreifen können. Das was du machen möchtest ist ein Zugriff auf die Eigenschaften des Labels. Welche Eigenschaften du hier ändern kannst siehst du in der Delphi Hilfe. Klick einfach auf das label und drück F1. Wenn du den angezeigten Text ändern willst heißt die gesuchte Eigenschaft Caption. Das findest du auch leich im Objektinspektor wieder. Dies ist der Kasten, der dir zur Designzeit alle Eigenschaften und Ereignisse anzeigt.
Eine Caption ist immer ein String (also eine Zeichenkette). Auch der ist kein TBassSongInfo, auch hier klappt die Zuweisung also nicht direkt.
Ein TBassSongInfo ist wie gesagt ein Record. Records setzen sich aus mehr als einem Datum zusammen. In diesem Fall findest du folgende Struktur:
Delphi-Quellcode:
TBassSongInfo = record
asString:string;
asInteger:integer;
end;
Wie du hier siehst, besteht das Record aus einem String und einem Integer. Gut, da du eh einen String möchtest, kannst du hier diesen direkt verwenden:
label3.Caption := BassdllPlayer1.GetSongTimeInfo(stUp).asString;
Das ganze ist jetzt schon alles. Der linke Teil sagt, dass du die Variable/Eigenschaft (das ist für dich transparent) Caption ändern möchtest. BassDllPlayer1.GetSongTimeInfor(stUp) liefert dir ein TBassSongInfo und hier nimmst du das Datum as String. Hier wird jetzt einer Eigenschaft die ein String ist auch ein String zugewiesen, alles super!
Gruß Der Unwissende