Anzeige der aktiven Verbindungen des Encoders

Funktioniert also, prima. Ich hatte aber oben noch eine Vereinfachung angedroht, hier kommt sie:

{
Zwischen die geschweiften Klammern kann der Spickzettel hin, z.B.:

1: SWR, 2: HR, 3: RIAS.
4: NDR, 5: RB; 6: ORF
usw.
}

const
  iMax = 15;                // Hier die maximale Senderanzahl minus 1 einsetzen

var
  i: integer;
  Stream: array[0 .. iMax] of boolean;
  Button: array[0 .. iMax] of string;

begin
 for i := 0 to iMax do
  case i of
  1, 5, 8..12, 14 :         // Hier aufzuschaltende Sender durch Kommata getrennt eintragen
    begin
      Stream[i] := true;
      Button[i] := ' ON';
    end;
  else
    begin
      Stream[i] := false;
      Button[i] := ' OFF';
    end;
  end;

for i := 0 to iMax do
  begin 
    Encoder.GetConnections.GetItem(i).SetEnabled(Stream[i]);
    ExecuteCommand('BUTTON.' + IntToStr(i) + Button[i]);
  end;

end.

Sieht zunächst komplizierter aus, ist es aber gar nicht. Die Erklärung, was die Zeilen im einzelnen bewirken, findet Ihr im Thread über Zählvariablen. Bis auf die Zeile mit dem Encoder (ich habe bisher nämlich keinen) habe ich das ausprobiert, das Skript sollte also laufen. Die Vereinfachung liegt darin, daß man jetzt nicht mehr dutzende Zeilen mit true, false, ON und OFF versehen muß, sondern lediglich die Nummern der Streams, die aufgeschaltet werden sollen, in die entsprechende Zeile einträgt. (Und noch die Gesamtzahl der Streams iMax, minus eins, da nullbasiert.)

Vielleicht magst Du das ja mal ausprobieren, Thomas.

Komprimierte Grüße

TSD


Nachtrag: Torben hat zur weiteren Abspeckung beigetragen, hier zu sehen.