angenommen ich habe ein array [1..5] of integer und fünf Buttons, die BUTTON.1, BUTTON.2 usw. heißen, wie bekomme ich diesen Index beispielsweise in den Befehl
ExecuteCommand('BUTTON.<n> OFF')
reingemurkst? Ich finde (kann aber an mir liegen) da nirgends Beispiele für die Syntax.
Ich bin ja relativ unwissend, was Programmiersprachen angeht aber das sieht auf den ersten Blick aus, wie eine einfacher Schleifenzähler. Ich kann da keine Verbindung zu einem Array herstellen.
Ein Array wäre für mich ein 2 oder 3 Dimensionales Datenfeld, dass weitere Informationen enthält. Ich kann mir z.B. den kompletten Status eines Icecast Server in ein Array lesen und dann einzelne Zellen von diesem Inhalt verarbeiten.
Hier z.B.
Einlesen, dann verarbeite ich erst mal den Status des Servers, ist der überhaupt online? Wenn ja, dann Bitte aus dem Info Feld, den Titel lesen.
Im Beispiel halt nicht nur von einem, sondern je 2 mount points von 2 Servern.
Mit Deinem Beispiel hier, müsste ich aber eigentlich meinen PTT Spagetti Code reduzieren können.
Vielen Dank für die Mühe. Das Array, hab ich ja zugegeben, ist aus einem vorherigen Gedankenschritt übriggeblieben – vergessen wir das mal. Mir geht es in erster Linie darum, die Befehle mit den Indizes zu modifizieren.
Dein Code könnte, so es denn so funktioniert, so ähnlich aussehen:
var
i : integer;
procedure OnEncoderInputToggle(Input: TEncoderInput; NewState: boolean);
begin
if (Input = eiMic) and (NewState = false) then begin
for i := -12 to 0 do
begin
ExecuteCommand('PLAYER 1-1 VOLUME ' + IntToStr(i));
ExecuteCommand('PLAYER 1-2 VOLUME ' + IntToStr(i));
Sleep(100);
end;
end
else if (Input = eiMic) and (NewState = true) then begin
for i := 0 downto -12 do
begin
ExecuteCommand('PLAYER 1-1 VOLUME ' + IntToStr(i));
ExecuteCommand('PLAYER 1-2 VOLUME ' + IntToStr(i));
Sleep(100);
end;
end;
end;
Ich kann berichten, es funktioniert. Habe dann noch den Zielwert und das Delay in Variablen verpackt.
var
i, target, delay : integer;
procedure OnEncoderInputToggle(Input: TEncoderInput; NewState: boolean);
begin
target := -12; // set your target duck range here
delay := 100; // set the delay betwee steps here to smoothen the fade
if (Input = eiMic) and (NewState = false) then begin
for i := (target) to 0 do
begin
ExecuteCommand('PLAYER 1-1 VOLUME ' + IntToStr(i));
ExecuteCommand('PLAYER 1-2 VOLUME ' + IntToStr(i));
Sleep(delay);
end;
end
else if (Input = eiMic) and (NewState = true) then begin
for i := 0 downto (target) do
begin
ExecuteCommand('PLAYER 1-1 VOLUME ' + IntToStr(i));
ExecuteCommand('PLAYER 1-2 VOLUME ' + IntToStr(i));
Sleep(delay);
end;
end;
end;