Talktimer blinken lassen

Hallo,

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.

Button_01

speicher_01

Statisch_01

Statisch_02

Talktimer_01