Registriert seit: 10. Feb 2007
Ort: Bersenbrück
547 Beiträge
Delphi 7 Enterprise
|
Re: Timerabruf (Timer2) bei Timerablauf (Timer1)
19. Mai 2007, 18:20
Reload-Prozedur
Delphi-Quellcode:
procedure TForm2.TimerReloadTimer(Sender: TObject);
var
Ini: TIniFile;
y,ya,i,ia,count,count2,counta,countb,ReloadTime,dnr:integer;
morgen_m: String;
tomorrow,today: TDateTime;
begin
dnr:=DayOfWeek(Date);
if dnr=7 then begin
today:=Date+2;
tomorrow:=Date+3;
end
else if dnr=6 then begin
today:=Date+3;
tomorrow:=Date+4;
end
else begin
today:=Date;
tomorrow:=Date+1;
end;
try
Ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'conf.ini');
ReloadTime:=(Ini.ReadInteger('Zeiteinstellungen','Tagwechsel',10)*1000);
morgen_m:=Ini.ReadString('Zeiteinstellungen','Datum morgen',DatetoStr(tomorrow));
if StrToDate(morgen_m)<tomorrow then morgen_m:=DateToStr(tomorrow)
else tomorrow:=StrToDate(morgen_m);
finally
Ini.Free;
end;
if PageControl1.TabIndex=0 then begin
Label5.Caption:='Vertretungsplan für den';
Label6.Caption:=DateToStr(today)+' (heute)';
end
else if PageControl1.TabIndex=1 then begin
Label5.Caption:='Vertretungsplan für den';
Label6.Caption:=DatetoStr(tomorrow);
end
else begin
Label5.Caption:='Meldungen';
Label6.Caption:='';
end;
TimerReload.Interval:=ReloadTime;
if PageControl1.TabIndex=0 then begin
if aktuseite = Gesseiten then
count := length(Daten) mod 19
else
count := 19;
y:= 19*AktuSeite;
stringgrid1.RowCount:=count+1;
for i:=0 to count-1 do begin
stringgrid1.Cells[0,i+1]:= Daten[i+y].klasse;
stringgrid1.Cells[1,i+1]:= Daten[i+y].stunde;
stringgrid1.Cells[2,i+1]:= Daten[i+y].fuer;
stringgrid1.Cells[3,i+1]:= Daten[i+y].wer;
stringgrid1.Cells[4,i+1]:= Daten[i+y].fach;
stringgrid1.Cells[5,i+1]:= Daten[i+y].raum;
stringgrid1.Cells[6,i+1]:= Daten[i+y].bemerkung;
end;
if AktuSeite = GesSeiten then
AktuSeite := 0
else
AktuSeite:=AktuSeite+1;
end
else if PageControl1.TabIndex=1 then begin
if aktuseitea = Gesseitena then
counta := length(Daten2) mod 19
else
counta := 19;
ya:= 19*AktuSeitea;
stringgrid2.RowCount:=counta+1;
for ia:=0 to counta-1 do begin
stringgrid2.Cells[0,ia+1]:= Daten2[ia+ya].klasse;
stringgrid2.Cells[1,ia+1]:= Daten2[ia+ya].stunde;
stringgrid2.Cells[3,ia+1]:= Daten2[ia+ya].fuer;
stringgrid2.Cells[2,ia+1]:= Daten2[ia+ya].wer;
stringgrid2.Cells[4,ia+1]:= Daten2[ia+ya].fach;
stringgrid2.Cells[5,ia+1]:= Daten2[ia+ya].raum;
stringgrid2.Cells[6,ia+1]:= Daten2[ia+ya].bemerkung;
end;
if AktuSeitea = GesSeitena then
AktuSeitea := 0
else
AktuSeitea:=AktuSeitea+1;
end;
TimerNextTab.Enabled:=True;
end;
NextTab-Timer:
Delphi-Quellcode:
procedure TForm2.TimerNextTabTimer(Sender: TObject);
var Ini: TIniFile;
dnr,interval: Integer;
morgen_m: String;
tomorrow,today: TDateTime;
begin
dnr:=DayOfWeek(Date);
if dnr=7 then begin
today:=Date+2;
tomorrow:=Date+3;
end
else if dnr=6 then begin
today:=Date+3;
tomorrow:=Date+4;
end
else begin
today:=Date;
tomorrow:=Date+1;
end;
try
Ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'conf.ini');
interval:=(Ini.ReadInteger('Zeiteinstellungen','Tagwechsel',10)*1000);
morgen_m:=Ini.ReadString('Zeiteinstellungen','Datum morgen',DatetoStr(tomorrow));
if StrToDate(morgen_m)<tomorrow then morgen_m:=DateToStr(tomorrow)
else tomorrow:=StrToDate(morgen_m);
finally
Ini.Free;
end;
if PageControl1.TabIndex=0 then
begin
PageControl1.TabIndex:=1;
TimerNextTab.Enabled:=False;
TimerNextTab.Interval:=interval;
Label5.Caption:='Vertretungsplan für den';
Label6.Caption:=DateToStr(today)+' (heute)';
end
else
if PageControl1.TabIndex=1 then
begin
PageControl1.TabIndex:=2;
TimerNextTab.Enabled:=False;
TimerNextTab.Interval:=interval;
Label5.Caption:='Vertretungsplan für den';
Label6.Caption:=DateToStr(Tomorrow);
end
else
if PageControl1.TabIndex=2 then
begin
PageControl1.TabIndex:=0;
TimerNextTab.Enabled:=False;
TimerNextTab.Interval:=interval;
Label5.Caption:='Meldungen';
Label6.Caption:='';
end
end;
Der Interval wird jeweils aus einer Ini-Datei ausgelesen.
Sven Kannenberg
|
|
Zitat
|