Fragen zu Scripts

OK, danke für den Verweis auf die Hierarchie. Das hatte ich komplett übersehen. Dass die Objekte abgeleitet wurden hatte ich schon vermutet.

Komme aber jetzt trotzdem nicht klar mit der Icon Geschichte. Also, mich auf diesen Code von dir referierend:

[code] CurrentPlaylist.BeginUpdate;
try
activePlayer := -1;
for i := 0 to CurrentPlaylist.GetPlayerCount - 1 do
if CurrentPlaylist.GetPlayer(i).GetState = psPlaying then begin
activePlayer := i;
break;
end;

// Index of item that is currently playing
activeItem := CurrentPlaylist.GetPlayer(activePlayer).GetItem;

// Insert new item below
CurrentPlaylist.Insert(CurrentPlaylist.IndexOf(activeItem) + 1, newItem);

finally
CurrentPlaylist.EndUpdate;
end;[/code]

also ich möchte den Player ermitteln wo momentan inaktiv ist (bei 2 Playern). Dort wird ja das gerade eben geladene Element landen was ich mit dem Icon versehen will.

[code] nextPlayer := -1;
for i := 0 to CurrentPlaylist.GetPlayerCount - 1 do
if CurrentPlaylist.GetPlayer(i).GetState = psLoaded then begin
nextPlayer := i;
break;
end;

nextItem := CurrentPlaylist.GetPlayer(nextPlayer).GetItem;

[/code]

Irgendwie scheint psLoaded nix “vernünftiges” zurück zu liefern (oder ich mache was grundlegendes falsch) ;D
Wenn ich dann…

nextItem.SetIconFilename('c:\wherever\icon.png'); nextItem.GetIconData.Clear;

klappt’s nicht. Mit activeItem dagegen schon.

Gruss:
-Serge-

Das neu hinzugefügte Element ist doch in der Variable “newItem” gespeichert. Darüber hast du doch Zugriff - kein Grund, erst lange wieder danach zu suchen.

Soweit war ich schon,

newItem ist aber nur der index des Elements in der Playliste, also dessen Position.
Ich weiss jetzt nicht wie ich SetIconFilename diesen Index jetzt übergeben kann.

Das Beispiel in deimem Link verstehe ich nicht wie das funktionniert…

Gruss:
-Serge-

Nein, newItem ist ein IPlaylistItem. Sonst würde das hier z.B. nicht funktionieren:

CurrentPlaylist.Insert(CurrentPlaylist.IndexOf(activeItem) + 1, newItem);

Also kannst du einfach machen:

newItem.SetIconFilename('woauchimmer.png');

usw.

1 Like

Aua…

mein Fehler. Ich hatte das anders implementiert über “CurrentPlaylist.InsertFile”

newItem war bei mir vom Type Integer, da ich folgendes zugewiesen hatte:

newItem := CurrentPlaylist.IndexOf(activeItem) + 1;

und dann

CurrentPlaylist.InsertFile(newItem, 'filename.xyz');

benutzt um die Datei einzufügen.

Nachdem ich newItem dann richtig deklariert und zugeordent hatte über

newItem := Factory.CreateFilePlaylistItem('filename.xyz', []);

blieb natürlich der .InsertFile unverändert und da hat’s dann immer gekracht…

Da kann man hundertmal drauf schauen, man sieht den Fehler einfach nicht weil man es ‘richtig’ liest… ::slight_smile:

Danke für den Support:
-Serge-