"Altes" ONAIR-Script funktioniert nur noch teilweise

Ich fühle mich so weise …

Wegweisende Grüße

usw.


Nein, Blödsinn. Um mal wieder mit Wattebäuschchen zu schmeißen: Das Array ist tatsächlich eindimensional, aber sonst sieht der Code soweit brauchbar aus. @Torben kommt aber gewiß gleich mit der procedure-Keule und kloppt den Code nochmal zusammen. Etwa so:


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

var
  i: integer;
  EncoderName: array[0 .. iMax] of string;

procedure OnLoad;
  begin
    EncoderName[0] := 'SWR';
    EncoderName[1] := 'HR';
    EncoderName[2] := 'RIAS';
    EncoderName[3] := 'NDR';
    EncoderName[4] := 'Aircheck';
    EnableTimer(100);
  end;

procedure SetEncoderButton(Index : integer; Name, Status, Farbe, Textfarbe : string);
  begin
    ExecuteCommand('ENCODER' + IntToStr(Index) + ' TEXT ' + Name + ' ' + Status);
    ExecuteCommand('ENCODER' + IntToStr(Index) + ' BACKGROUNDCOLOR ' + Farbe);
    ExecuteCommand('ENCODER' + IntToStr(Index) + ' FONTCOLOR ' + Textfarbe);
  end;

procedure OnTimer;
  begin

    for i := 0 to iMax do
      begin
        if (Encoder.GetConnections.GetItem(i).GetEnabled = true) then begin
          if (Encoder.GetConnections.GetItem(i).GetState = ecsConnected) then
            SetEncoderButton(i, EncoderName[i], 'ON AIR', '#FF0000', '#FFFFFF')
          else if (Encoder.GetConnections.GetItem(i).GetState = ecsConnecting) then begin
            SetEncoderButton(i, EncoderName[i], '!OFF AIR!', '#FFFFFF', '#FF0000');
            Sleep(800);
          end  
          else
            SetEncoderButton(i, EncoderName[i], 'READY!', '#000000', '#00FF00');
          end;
        end
        else 
          SetEncoderButton(i, EncoderName[i], 'AUS', '#F0F0F0', '#848484');
        end;
      end;

  end;  

begin
end.

Ungetestet, aus reinem Übermut entstanden! (Wahrscheinlich habe ich wieder irgendwo ein entscheidendes ; vergessen …) Die Zuordnung der Sendernamen habe ich in die OnLoad gepackt, die braucht man nicht alle Zehntelsekunde neu setzen. Den Spickzettelquatsch habe ich der Kürze halber mal weggelassen.

Kühne Grüße

TSD