Kommentar-Feld Inhalt speichern

Bevor ich mein Anliegen beschreibe, möchte ich eins noch davor sagen.

Ich nutze mAirlist jetzt eine wirklich lange Zeit und ich muss sagen, dass ich sehr zufrieden bin. Alles was mir so vorschwebte habe ich umsetzen können. Das betrifft die Bedienung/Ansteuerung, das Design und das Nutzen vieler Funktionen und der Datenbank. Hier und da musste ich mal umdenken und mit der Zeit gehen. Mir wurde zu 95% im Forum geholfen, dafür mal ein dickes Danke!

Was mit jetzt gerade noch fehlt ist diese Sache (OK, 2-3 Dinge mehr gäbe es da noch):

Da ich meist für verschiedene Sender verschiedene Sendungen produziere oder live fahre, trage ich das gerne ein damit ich weiß wo und was ich gerade sende – bin auch nicht mehr der Jüngste.
Dafür habe ich zwei Kommentar-Felder eingerichtet in die ich das jeweils eintragen kann. (Siehe Beispiel-Bild)

Allerdings händisch und jedesmal neu, da der Inhalt der Kommentar-Felder beim Schließen des Programms nicht gespeichert wird.

Jetzt meine Fragen:

  1. Ist es möglich den Inhalt der Kommentar-Felder beim Schließen des Programms zu speichern?
  2. Wäre es dann möglich verschiedene Sender und Sendungen über ein zuvor gespeichertes Drop-Down-Menü auszuwählen?

Vielleicht hat jemand eine Idee oder ein Script mit dem das funktionieren könnte?

thx so far

k-feld

1 Like

Muß es denn zwingend ein Kommentarfeld sein? Wenn es tatsächlich nur um die Darstellung auf dem Bildschirm geht, dann würden zwei Felder mit statischem Text ausreichen. Das ließe sich per Befehl (Menü geht nicht) steuern.

Kann mich im Moment allerdings nicht drum kümmern, frühestens Ende nächster Woche.

Es muss natürlich nicht zwingend ein Kommentar-Feld sein. Statischer Text oder Button oder egal. Gerne Auswahl oder Menu.

Mach so, wie du Zeit hast.

Dann schicke mir doch mal, gerne per PM, die Namen Deiner Sender und die Deiner Sendungen.

Wenn es dafür nen Script geben würde, hätte ich auch Interesse daran. Ich sende auch für mehrere Sender.

1 Like

Hier ist ein Skript für einen elektronischen Merkzettel. Die gespeicherten Parameter wechseln durch Klick auf den entsprechenden Button und werden jeweils fünf Sekunden nach dem letzten Klick in eine Datei abgespeichert, damit sie beim nächsten Programmstart wieder zur Verfügung stehen. Diese Datei ist beliebig plazierbar, muß aber bereits vorhanden sein (sprich: einmal manuell angelegt werden), eine automatische Erstellung im Falle des Fehlens habe ich mir jetzt mal gespart.

Da JP ebenfalls Interesse zeigte, habe ich die Sendungs- und Stationsnamen allgemein gehalten. Die jeweiligen Anzahlen der Stationen und Sendungen sind (annähernd) beliebig, jedoch einmal genau im Kopf des Skripts einzutragen, die einzelnen Stations- bzw. Sendungsnamen selbst werden in die Prozedur OnLoad geschrieben. Ebenso muß der Speicherort der Parameterdatei angegeben werden.

Voraussetzung sind zwei Statischer-Text-GUI-Elemente namens STATIONSBUTTON und SENDUNGSBUTTON, die beim Betätigen die Befehle INCSTATION bzw. INCSENDUNG von sich geben.

const
  // Hier die Anzahl der Sendungen und Stationen eintragen:
  
  ANZAHLSTATIONEN = 3;
  ANZAHLSENDUNGEN = 4;
  
  
  // hier den Pfad zur Speicherdatei eintragen:
  
  PFAD = 'C:\Pfad\zur\Datei\';
  
  
  // hier den Namen der Speicherdatei eintragen:
  
  DATEI = 'Parameter.txt';
  
  
  // Namen der Stationen und Sendungen in procedure OnLoad eintragen.
  


var
  i, k: integer;
  Station, Sendung: Array of string;
  sl: TStringList;
  
procedure LoadParameters;
begin
  sl := TStringList.Create;
  try
    sl.LoadFromFile(PFAD + DATEI);
    if sl.Count > 0 then
    begin
      i := StrToInt(sl[0]);
      k := StrToInt(sl[1]);
    end
    else
    begin
      i := 0;
      k := 0;
    end;
  except
    i := 0;
    k := 0;
  finally
    sl.Free;
  end;
end;  


procedure SaveParameters(sStation, sSendung: integer);
begin
  sl := TStringList.Create;
  try
    sl.Add(IntToStr(sStation));
    sl.Add(IntToStr(sSendung));
    sl.SaveToFile(PFAD + DATEI);
  finally
    sl.Free;
  end;
end;


procedure OnLoad;
begin  
  SetLength(Station, ANZAHLSTATIONEN);
  SetLength(Sendung, ANZAHLSENDUNGEN);
  
  
  // Hier die Namen der Stationen und Sendungen eintragen:
  
  Station[0] := 'Station 1';
  Station[1] := 'Station 2';
  Station[2] := 'Station 3';
  
  Sendung[0] := 'Sendung 1';
  Sendung[1] := 'Sendung 2';
  Sendung[2] := 'Sendung 3';
  Sendung[3] := 'Sendung 4';
  
  
  ////////////////////////////////////////////////////////
  
  LoadParameters;
  
  ExecuteCommand('STATIONSBUTTON TEXT ' + Station[i]);
  ExecuteCommand('SENDUNGSBUTTON TEXT ' + Sendung[k]);
      
end;


procedure OnTimer;
begin
  SaveParameters(i, k);
  DisableTimer;
end;


procedure OnExecuteCommand(Command: string);
begin
  
  if Command = 'INCSTATION' then
  begin
    Inc(i);
    if i > ANZAHLSTATIONEN - 1 then
      i := 0;
    ExecuteCommand('STATIONSBUTTON TEXT ' + Station[i]); 
    EnableTimer(5000);
  end;
  
  if Command = 'INCSENDUNG' then
  begin
    Inc(k);
    if k > ANZAHLSENDUNGEN - 1 then
      k := 0;
    ExecuteCommand('SENDUNGSBUTTON TEXT ' + Sendung[k]);  
    EnableTimer(5000);
  end;
  
end;

3 Likes

Schon mal vielen Dank für Deine Arbeit.

Ich habe, denke ich, alles korrekt eingerichtet. Nach dem Script ausführen kommt jedoch eine Fehlermeldung bezüglich der Zeile ‘DisableTimer’.
Was ist da schief? Sicher nicht viel, oder?

Du mußt das Skript als Hintergrundskript einrichten (Systemsteuerung oder Konfiguration).

Herzlichen Dank für das Script - Funktioniert 1A!

1 Like

Ah OK, habe ich jetzt gemacht.
Aber es tut sich leider nichts. Was mache ich falsch?

Keine Ahnung, weil ich nicht weiß, was Du tust. Sind die nötigen GUI-Elemente am Start und haben sie die richtigen Parameter?

Sollte richtig sein.

Von hier aus schwer zu sagen. Bei mir funktioniert es. Bei @JP_Im_Radio auch. Du könntest im System-Log nachsehen, ob das Skript korrekt geladen wurde. Mehr fällt mir im Moment nicht ein.

image

Wie genau hast du es denn bei dir eingebaut?

So siehts bei mir aus:
grafik

Wenn ich auf den Sender oder Sendungsname klicke, kann ich auswählen, was ich gerade benötige.

… und die Textfelder hast Du mittels Layout-Editor plaziert?

Japp. Hab ich, da wo ich diese eben benötige.

So habe ich es auch gemacht.

studio

Klick mal auf eines der Felder :slight_smile: Vielleicht wirds dann angezeigt.

Das wäre zu einfach.
Habe ich natürlich schon gemacht. :smiley: