Entwickler-Ecke

Sonstiges (Delphi) - "Aktionsliste"


Hendrik - Mi 23.10.02 19:05
Titel: "Aktionsliste"
Hallo

Ich habe vor in einem Programm eine Liste einzufügen, in der steht, dass das Programm zu einem bestimmten Zeitpunkt eine Aktion ausführen soll. Z.B. um 13:23 showmessage('Beispiel');
Und während der Laufzeit sollen weitere Befehle hinzukommen. Versteht Ihr was ich meine??

Habt Ihr da Tipps wie ich sowas machen kann oder gibts dafür sogar ne Kompo?


FriFra - Mi 23.10.02 21:59

Dafür kannst Du z.B. eine ListView nehmen. Du kannst dort mehrere Spalten anlegen wo Du div. Parameter ablegen kannst (z.B: Zeit,Aktion, sonstige Parameter). Anschliessend prüfst Du in einem festen Intervall (Timer) alle Zeilen der ListView ob die Aktion "fällig" ist und führst sie ggf. aus.
Natürlich kannst Du in der Liste keinen Pascal-Code ablegen. Du musst Dir schon überlegen was Dein Programm genau können soll, dann kannst Du dir ja eigene "Befehle" (Auswahl z.B. über Listbox) anlegen welche Du dann entspr. Interprätierst.


Hendrik - Do 24.10.02 16:03

So habe ich mir das auch schon gedacht, nur habe ich da noch das Problem, wie ich das am besten Lösen kann mit der Zeit.
Ich weis nämlich nett wie ich z.B. zu der aktuellen Zeit die gewünschte Zeit hinzufüge.


Tino - Do 24.10.02 17:23

Hendrik hat folgendes geschrieben:
Ich weis nämlich nett wie ich z.B. zu der aktuellen Zeit die gewünschte Zeit hinzufüge.

Das ist doch für Dein Programm gar nicht notwendig.

Du kannst doch (wie FirFra schon geschrieben hat) einen Timer benutzen der z. B. alle 30 Sekunden prüft ob eine Aktion fällig ist. Das Prüfen besteht doch eigentlich nur darin die aktuelle Zeit mit der gespeicherten Zeit zu vergleichen.

Gruß
TINO


CenBells - Do 24.10.02 17:23

also, die zeit komponente in TDatetime ...

TDatetime 0 = 31.12.1899 0 uhr

wenn du nun minuten hinzufügen willsst, musst du 1 / 1440 teilen und addieren dann hast eine minute dazuaddiert und so weiter und so fort

Bsp

Quelltext
1:
2:
3:
4:
5:
var
LDate: TDateTime
begin
  LDate := LDate + (1/1440);
end;

Gruß
Ken


Hendrik - Fr 25.10.02 15:32

Mir ist eben noch ne Idee gekommen:
Ich setzte z.B. beim Timer den Intervall z.B. auf 30000 und mache ein Feld in dem ich z.B. die Zahl 20 eintrage. In diesem Feld zieht dann der Timer jedesmal 1 ab, wenn der Wert dann 0 ist wird die Anweisung ausgeführt und der Eintrag gelöscht..