Hallo liebe Delphi-Helfer
Ich habe einen Timer der je nach Bedingung von Zeit und Einstellung verschiedene Funktionen startet.
Mein Problem dabei ist, das bei ungünstigen Einstellungen eine Funktion aufgerufen werden müsste, die aber nicht aufgerufen wird, weil die vorherige Funtion noch arbeitet, wärend die Zeit-Bedingung gesetzt ist.
Daher habe ich nun vor diese Funktionen in eine ToDo-Liste zu setzen und diese mit einem seperaten Timer die anfallenden Funktionen abzuarbeiten.
Zum Beispiel der 1. STRING: lbToDo.Items.Strings[0] = '_Funktion(Para1, Para2);'
Es gibt in meinem Projekt auch eine Funktion die genau so aufgerufen wird: _Funktion(Para1, Para2);
Das blöde ist nur, dass die Liste nunmal ein String ist.
Übergangsweise werde ich es wie folgt programmieren:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TfmHaupt.TimerToDoTimer(Sender: TObject); var Funktion : String; begin if lbToDo.Items.Count = 0 then begin TimerToDo.Enabled:= False; EXIT; end; Funktion:= lbToDo.Items.Strings[0]; if Funktion = '_Funktion1(Para1, Para2);' then _Funktion1(Para1, Para2); if Funktion = '_Funktion1(Para1, Para3);' then _Funktion1(Para1, Para3); if Funktion = '_Funktion2(Para4);' then _Funktion2(Para4); ... end; |
Meine Frage:
Gibt es eine Möglichkeit zu sagen, dass der String Funktion direkt als Funktion ausgeführt wird?
Moderiert von Martok: Code- durch Delphi-Tags ersetzt