If statement mit Abfrage des Typs != null. Bitte um Hilfe

Ich kenn mich mit mAirList-Script leider nicht aus, aber ich benötige ein IF-Statement das eine Routine ausführt, sofern der Typ eines Titels nicht gesetzt ist. Leider finde ich in der Dokumentation schon die Bezeichnung für die Variable nicht. Alle Titel die wir in der Datenbank haben sind vom Typ “musik” oder “Jingle” oder eben gesetzt. Ich hätte jetzt gerne ein If-Statement wenn das nicht gesetzt ist, dann mache etwas.

also eine Art

if ($typ != null) {
// mein schon vorhandenes und funktionierendes mAirList-Script.
}

Nur eben in mAirlist-Script :slight_smile: Und da ich schon nicht die Variable in dem Wust an Variablen finde in der CHM-Datei, brauche ich hilfe von jemandem, der sich damit auskennt.

Danke schonmal.

„Nicht gesetzt“ ist der Typ Unknown. Du könntest das so abfragen:

var
  Item: IPlaylistItem;

begin
  if Item.GetItemType = pitUnknown then
  begin
    // do something
  end;
end.


Zugeordnete Grüße

TSD

Danke. Für was steht das “pit”?? und wie frage ich ein IS NOT ab? Hab gelesen das wäre <> Wenn ich also nur will dass die Schleife gefahren wird, wenn es eben NICHT Unkknown ist.

playlist item type”

(Die Enumerations haben alle solche Präfixe.)

ich verstehe es einfach nicht. Das ist für mich ein Stochern im Unbekannten. Ich habe folgendes Script, aber bekomme ein “Identifier expected” und komme nicht weiter:

const
COMMAND = 'C:\rolandradio\scripts\con2mp3andftp.bat';

var
  Item: IPlaylistItem;
PATH, ID: string;


begin
  if Item.GetItemType <> pitUnknown then
	begin

		procedure OnPlayerStart(PlaylistIndex: integer; PlayerIndex: integer; Item: IPlaylistItem);
		begin
			PATH := IFilePlaylistItem(Item).GetFilename;
			ID := Item.GetDatabaseID;
			ShellExecuteHidden('cmd.exe', '/c' + Chr(32) + COMMAND + Chr(32) + '"' + PATH + '"' + Chr(32) + ID);
		end;
	end;
end.

Der Mittelteil des Scriptes funktionierte soweit, also der Teil:

const
COMMAND = 'C:\rolandradio\scripts\con2mp3andftp.bat';

var
PATH, ID: string;

procedure OnPlayerStart(PlaylistIndex: integer; PlayerIndex: integer; 
  Item: IPlaylistItem);
begin

  PATH := IFilePlaylistItem(Item).GetFilename;
  ID := Item.GetDatabaseID;

ShellExecuteHidden('cmd.exe', '/c' + Chr(32) + COMMAND + Chr(32) + '"' + PATH + '"' + Chr(32) + ID);

end;

begin
end.

Was auch immer ich da oben jetzt falsch mache. Die Fehlermeldung hilft mir leider überhaupt nicht weiter.
Irgendjemand, der mir das korrigieren könnte?

Das Item ist doch noch gar nicht definiert. Das passiert erst durch die procedure OnPlayerStart. Insofern sind die Zeilen da durcheinander geraten. Wenn Du sie so ordnest müßte es gehen:

const
COMMAND = 'C:\rolandradio\scripts\con2mp3andftp.bat';

var
  PATH, ID: string;

procedure OnPlayerStart(PlaylistIndex: integer; PlayerIndex: integer; Item: IPlaylistItem);
begin
  PATH := IFilePlaylistItem(Item).GetFilename;
  ID := Item.GetDatabaseID;
  if Item.GetItemType <> pitUnknown then
    ShellExecuteHidden('cmd.exe', '/c' + Chr(32) + COMMAND + Chr(32) + '"' + PATH + '"' + Chr(32) + ID);
end;

begin
end.


Aufgeräumte Grüße

TSD