Cartwall-Seiten Fernsteuerung

Moin zusammen,

für mein folgendes Anliegen habe ich im Forum leider bisher nur unbeantwortete Threads gefunden, die ich aufgrund ihres Alters nicht wieder aktivieren wollte.

Ich würde gerne per Fernsteuerung mittels Hotkeys (StreamDeck) oder ggf. Script explizit ein Element auf einer definierten Cartwall-Seite abfahren können.

Bisher bin ich nur auf die Befehle CARTWALL NEXT PAGE und CARTWALL PREVIOUS PAGE gestoßen. Das Problem dabei ist, dass die gerade aktive Seite unbekannt ist. Wenn ich also auf Seite 1 Cart 1 abfahren will, kann ich nicht einfach CARTWALL PREVIOUS PAGE; CARTWALL 1 START ausführen, da dann nicht zwingend zur Seite 1 gewechselt wird. Hinzu kommt, dass bei aktiver Seite 1 beim Aufruf des Previous-Befehls auf die n-te (also letzte) Seite gewechselt gesprungen wird.

Ich hoffe, man versteht was ich meine. Gibt es dafür eine Lösung oder Workaround?

Doch, ich glaube zu verstehen. Dafür müßte man vermutlich mit SetActivePageIndex herumskripten. Probiere ich vielleicht später mal herum.

Mutmaßende Grüße

TSD

Probiere mal folgendes:

{ 

  +------------------------------------------------------------------------+
  |                                                                        |
  | Skript zum Ausspielen von bestimmten Cartwall-Elementen                |
  |                                                                        |
  | Version 1.0, © 2020 Tondose (https://community.mairlist.com/u/tondose) |
  |                                                                        |
  +------------------------------------------------------------------------+



• Das Skript stellt einen Remote-Befehl CARTWALL PLAY $<m>-<n> mit

  <m>: Nummer Cartwall-Seite (beginnt mit 1)
  
  <n>: Nummer des Players auf der entsprechenden Seite (beginnt mit 1)
  
  zur Verfügung.
  
  Beispiel: CARTWALL PLAY $3-6 spielt das sechste Element auf der
            dritten Cartwall-Seite aus.
  
}

var
  m, n, r, s: integer;

procedure OnExecuteCommand(Command: string);
begin
  if Copy(Command, 1, 13) = 'CARTWALL PLAY' then begin
    r := Pos('$', Command);
    s := Pos('-', Command);
    m := StrToInt(Copy(Command, r + 1, s - r - 1));
    n := StrToInt(Copy(Command, s + 1, Length(Command) - s));
    Cartwall.SetActivePageIndex(m - 1);
    ExecuteCommand('CARTWALL ' + IntToStr(n) + ' START');
  end;
end;

begin
end.

Bitte beachte die im Kopf angegebene Syntax des Befehls.

Gesteuerte Grüße

TSD

1 Like

Hey Tondose,

vielen Dank für das Script. Funktioniert bestens! Gut gefällt mir auch, dass mAirList direkt auf die Cartwall-Seite springt, auf der das Element gestartet wird. Genauso wie gewünscht.

Riesen Dank und beste Grüße
Stefan

1 Like

Es könnte freilich Leute geben, die genau das nicht wünschen. Das ließe sich aber auch hinskripten; bei Bedarf bitte melden.
 

Alternative Grüße

TSD