thorstenf01 - Mo 12.07.04 23:58
Titel: Schnittstellenabfrage in der Vergangenheit
Hallo,
wer kann mir bei folgendem Problem helfen:
der unten angegebene Code zeigt eine zeitlich festgelegte Schnittstellenabfrage, bei der die vom Anwender
festgelegten Zeiten mit der Istzeit verbunden werden. Ist die festgelegte Zeit innerhalb der Istzeit, so
wird die Schnittstelle freigestaltet.
Bsp.: Start der Abfrage: 12.07.04, 23:45Uhr
Ende der Abfrage: 13.07.04, 0:30Uhr
Istzeit: 12.07.04, 23:54Uhr, (die Schnittstelle ist freigeschaltet "grüne Anzeige)
Bisher kann man den Start der Abfrage nur so einstellen, wie die Startzeit in der Zukuft liegt.
Wie kann ich das hinbekommen, dass der Start auch rüchwirkend in der Vergangenheit fuktioniert.
Bsp.: Start der Abfrage: 12.07.04, 23:45Uhr
Ende der Abfrage: 13.07.04, 0:30Uhr
Istzeit: 12.07.04, 23:00Uhr,
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87:
| ... procedure TForm3.FormCreate(Sender: TObject); begin Opencom(Pchar('COM1:9600,N,8,1')); Edit4.text := FormatDateTime('tt',Time); Edit5.text := FormatDateTime('ddddd',Date); DTR (1); CTSalt:= -1; DSRalt:= -1; DCDalt:= -1; RIalt:= -1;
end;
procedure TForm3.Timer2Timer(Sender: TObject); var Hour, Min, Sec, mSec: Word; I: Integer; begin if (timer1.Enabled = true) and (Opencom(Pchar('COM1:9600,N,8,1')) = 0) then ShowMessage ('COM1 belegt'); DecodeTime(time, Hour, Min, Sec, mSec); Edit4.text := FormatDateTime('tt',Time); Edit5.text := FormatDateTime('ddddd',Date);
if (Time > StrToTime (Edit2.Text)) and (Time < StrToTime (Edit3.Text)) and (Date >= StrToDate (Edit6.Text)) and (Date <= StrToDate (Edit7.Text)) then timer1.Enabled := true; if (Time > StrToTime (Edit3.Text)) and (Date >= StrToDate (Edit7.Text)) then timer1.Enabled := false ;
if (Time > StrToTime (Edit9.Text)) and (Time < StrToTime (Edit11.Text)) and (Date >= StrToDate (Edit8.Text)) and (Date <= StrToDate (Edit10.Text)) then timer3.Enabled := true; if (Time > StrToTime (Edit11.Text)) and (Date >= StrToDate (Edit10.Text)) then timer3.Enabled := false ;
with shape1 do begin if timer1.Enabled = true and timer3.Enabled = true then Brush.Color:=clRed else Brush.Color:=clLime; end; end;
procedure TForm3.Timer1Timer(Sender: TObject); begin try CTSneu:=CTS; DSRneu:=DSR; DCDneu:=DCD; RIneu:=RI;
if CTSneu = 1 then ListBox2.Items.Add(' '+DateToStr(Date)+' '+TimeToStr(Time)+'' + ' CTS = 1' + ' 1.Jahreshaelfte')
else if DSRneu = 1 then ListBox2.Items.Add(' '+DateToStr(Date)+' '+TimeToStr(Time)+'' + ' DSR = 1' + ' 1.Jahreshaelfte')
else if DCDneu = 1 then ListBox2.Items.Add(' '+DateToStr(Date)+' '+TimeToStr(Time)+'' + ' DCD = 1' + ' 1.Jahreshaelfte')
else if RIneu = 1 then ListBox2.Items.Add(' '+DateToStr(Date)+' '+TimeToStr(Time)+'' + ' RI = 1' + ' 1.Jahreshaelfte'); except end; end;
procedure TForm3.Timer3Timer(Sender: TObject); begin try CTSneu:=CTS; DSRneu:=DSR; DCDneu:=DCD; RIneu:=RI;
if CTSneu = 1 then ListBox2.Items.Add(' '+DateToStr(Date)+' '+TimeToStr(Time)+'' + ' CTS = 1' + ' 2.Jahreshaelfte')
else if DSRneu = 1 then ListBox2.Items.Add(' '+DateToStr(Date)+' '+TimeToStr(Time)+'' + ' DSR = 1' + ' 2.Jahreshaelfte')
else if DCDneu = 1 then ListBox2.Items.Add(' '+DateToStr(Date)+' '+TimeToStr(Time)+'' + ' DCD = 1' + ' 2.Jahreshaelfte')
else if RIneu = 1 then ListBox2.Items.Add(' '+DateToStr(Date)+' '+TimeToStr(Time)+'' + ' RI = 1' + ' 2.Jahreshaelfte');
except end; end; ... |
Danke im voraus für Eure Hilfe
Moderiert von
UGrohne: Code- durch Delphi-Tags ersetzt.