Hier bin ich genau nach Anleitung gegangen, das Objekt wird auch erstellt wechselt allerdings nur die Farbe beim anklicken, aber das ist es ja nicht, vielleicht stehe ich da zu sehr auf dem Schlauch oder habe ein Denkfehler.
Das Textfeld mit dem Hinweis TALKTIME OVER wenn der Talktimer die Zeit von 1.30 Minuten erreicht hat wäre definitiv okay bzw. das ist mein Ziel, falls möglich.
Schon mal vorab, sorry für die Laienhafte Ausdrucksweise
Erstelle einen GUI-Element als statischen Text mit der ID für FernsteuerungBUTTON.TALK. Registriere folgendes Hintergrund-Skript:
const
TALK_TIME = 90; // Zeit in Sekunden bis zur Warnung
BUTTON_NAME = 'BUTTON.TALK'; // Name des statischen Textes
BCOLOR_ON = '#FF0000'; // Hintergrundfarbe "an"
BCOLOR_OFF = '#8A0808'; // Hintergrundfarbe "aus"
FCOLOR_ON = '#F7F8E0'; // Schriftfarbe "an"
FCOLOR_OFF = '#848484'; // Schriftfarbe "aus"
var
TalktimerOn, ButtonStatus: boolean;
procedure ButtonOn;
begin
ExecuteCommand(BUTTON_NAME + ' FONTCOLOR ' + FCOLOR_ON);
ExecuteCommand(BUTTON_NAME + ' BACKGROUNDCOLOR ' + BCOLOR_ON);
ButtonStatus := true;
end;
procedure ButtonOff;
begin
ExecuteCommand(BUTTON_NAME + ' FONTCOLOR ' + FCOLOR_OFF);
ExecuteCommand(BUTTON_NAME + ' BACKGROUNDCOLOR ' + BCOLOR_OFF);
ButtonStatus := false;
end;
procedure ButtonFlash;
begin
EnableTimerEx('Flash', 750);
end;
procedure ButtonStop;
begin
DisableTimerEx('Flash');
ButtonOff;
end;
procedure OnLoad;
begin
TalktimerOn := false;
ButtonOff;
end;
procedure OnTimerEx(ID: string);
begin
if ID = 'Time' then
begin
ButtonFlash;
DisableTimerEx('Time');
end;
if ID = 'Flash' then
begin
if ButtonStatus then
ButtonOff
else
ButtonOn;
end;
end;
procedure OnExecuteCommand(Command: string);
begin
if (copy (Command, 1, 15) = 'TALKTIMER START')
AND NOT TalktimerOn then
begin
if TALK_TIME > 0 then
begin
TalktimerOn := true;
EnableTimerEx('Time', TALK_TIME * 1000);
end;
end
else if ((copy (Command, 1, 15) = 'TALKTIMER START')
OR (Command = 'TALKTIMER STOP'))
AND TalktimerOn then
begin
TalktimerOn := false;
ButtonStop;
end;
end;
begin
end.
Der Button fängt 90 Sekunden nach Start des Talktimers an zu blinken.
Herzlichen Dank erstmal für Deine Mühe mir dabei zu helfen.
Auch wenn ich die Programiersprache nicht wirklich verstehe, Hut ab vor dem was Du da gezaubert hast, es funktioniert grundlegend schon mal sehr gut, habe mir die Farben etc angepasst, das verstehe sogar ich und ist kein Thema.
Allerdings fiel mir dann auf das wenn der Talktimer weniger als 90 Sekunden active ist oder gestoppt wird dass das Script weiterläuft bzw. wieder sofort von vorne beginnt auf 90 Sekunden zu zählen und dann unabhängig davon ob der Talktimer wieder aktiv wird oder nicht wie ursprünglich gewünscht nach 90 Sekunden zu blinken beginnt, heist also das Script hält nicht an wenn der Talktimer stoppt.
ich habe das Script auch einmal eingebunden, denn ich finde die Anwendung auf den Talktimer sehr interessant.
Ich bekomme allerdings einen Fehler in Zeile 30 und ich weiss nicht warum.
Ich habe jetzt einige Stunden gesessen und getestet um den Fehler zu finden, aber ich bekomme immer wieder für die gleiche Zeile einen Fehler angezeigt. Für mich sieht das alles logisch aus. Wo hat sich der Fehlerteufel versteckt?
Ich habe bei einem bereits bestehendem statischem Text die ID eingetragen. Nach dem Fehler habe ich dann einen neuen statischen Text mit der ID erstellt, aber selber Fehler.
Dann habe ich es mit einer anderen ID probiert und diese dann in Deinem Script natürlich angepasst. Selbiges Problem. Dann dachte ich, daß sich eventuell Scripte bei mir miteinander bei dem String “Flash” beißen, aber da habe ich auch nichts gefunden.
ich steuere den über die Tastatur an (siehe den ersten Screen weiter oben)(ZIRKUMFLEX = Taste unter Esc und links neben der 1). Das heist wenn ich den Mic-Button drücke beginnt der Talktimer ebenfalls zu zählen incl. des Scriptes für den 90 Sekunden Timer, beim ersten mal funktioniert das auch, wenn ich die Taste abermals drücke beginnt der wieder von vorne zu zählen anstatt zu stoppen wenn der Mic Button auf OFF steht.
Habe alles so eingerichtet bzw. kopiert. Hier nochmal der Code wo ich lediglich die Buttonfarben angepasst habe und ein paar Screens:
const
TALK_TIME = 90; // Zeit in Sekunden bis zur Warnung
BUTTON_NAME = 'BUTTON.TALK'; // Name des statischen Textes
BCOLOR_ON = '#202020'; // Hintergrundfarbe "an"
BCOLOR_OFF = '#202020'; // Hintergrundfarbe "aus"
FCOLOR_ON = '#FF0000'; // Schriftfarbe "an"
FCOLOR_OFF = '#202020'; // Schriftfarbe "aus"
var
TalktimerOn, ButtonStatus: boolean;
procedure ButtonOn;
begin
ExecuteCommand(BUTTON_NAME + ' FONTCOLOR ' + FCOLOR_ON);
ExecuteCommand(BUTTON_NAME + ' BACKGROUNDCOLOR ' + BCOLOR_ON);
ButtonStatus := true;
end;
procedure ButtonOff;
begin
ExecuteCommand(BUTTON_NAME + ' FONTCOLOR ' + FCOLOR_OFF);
ExecuteCommand(BUTTON_NAME + ' BACKGROUNDCOLOR ' + BCOLOR_OFF);
ButtonStatus := false;
end;
procedure ButtonFlash;
begin
EnableTimerEx('Flash', 750);
end;
procedure ButtonStop;
begin
DisableTimerEx('Flash');
ButtonOff;
end;
procedure OnLoad;
begin
TalktimerOn := false;
ButtonOff;
end;
procedure OnTimerEx(ID: string);
begin
if ID = 'Time' then
begin
ButtonFlash;
DisableTimerEx('Time');
end;
if ID = 'Flash' then
begin
if ButtonStatus then
ButtonOff
else
ButtonOn;
end;
end;
procedure OnExecuteCommand(Command: string);
begin
if (copy (Command, 1, 15) = 'TALKTIMER START')
AND NOT TalktimerOn then
begin
if TALK_TIME > 0 then
begin
TalktimerOn := true;
EnableTimerEx('Time', TALK_TIME * 1000);
end;
end
else if ((copy (Command, 1, 15) = 'TALKTIMER START')
OR (Command = 'TALKTIMER STOP'))
AND TalktimerOn then
begin
TalktimerOn := false;
ButtonStop;
end;
end;
begin
end.
EDIT by Moderator: Code angepasst für bessere Lesbarkeit.
Apropos Lesbarkeit: Man kann die Screenshots gerne auch auf 50% innerhalb des Editors reduzieren lassen. Sie lassen sich durch Mausklick in voller Pracht anzeigen.
Danke für den Tipp, muss mich auch hier erstmal mit den Schaltflächen vertraut machen, hab auch das angepasst. Ich werd noch ein Profi in Sachen Forumpostings.
Schönes Wochenende Euch und Danke sehr
Kein Thema. Habe gerade noch etwas editiert. Manche Pics sind so klein (Dateigröße), die lassen sich nicht einzoomen, warum auch immer. Ich habe jetzt mal einen Kompromiss reingebastelt und alles ein wenig entzerrt.
Schön. Und welche Befehle gibt die Tastatur an mAirList weiter? Ich brauche das, was unter Fernsteuerung in der Konfiguration/Systemsteuerung steht und Mikrofon und Talktimer betrifft.
ich lasse es als Hintergrundscript laufen. Sobald ich dann Mairlist starte kommt der Fehler. Ich habe auch probiert das Script einzeln zu starten, selbiger Fehler.
Der talktimer reagiert nicht auf ON/OFF sondern nur auf START/STOP aber auch wenn ich auf TALKTIMER START/STOP; ENCODER INPUT MIC ON/OFF
umstelle funktioniet es nicht korrekt, wie gesagt der Timer wird zwar wieder auf 0.00 gesetzt und die Anzeige erlischt wie gewünscht, das Script zählt wohl dennoch weiter.
ich bin im Moment überfragt. Ich habe hier V 6.3.5 Build 4382 (wieso eigentlich?), und da funktioniert es bestens. Es klingt jetzt blöd, aber bitte schaue nochmal nach, in welcher Version Du das Skript wirklich ausprobiert hast (nach Klick auf ).