AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Über Timer Stringlist 'weiterschalten'
Thema durchsuchen
Ansicht
Themen-Optionen

Über Timer Stringlist 'weiterschalten'

Ein Thema von Svenkan · begonnen am 17. Mai 2007 · letzter Beitrag vom 28. Mai 2007
 
Svenkan

Registriert seit: 10. Feb 2007
Ort: Bersenbrück
547 Beiträge
 
Delphi 7 Enterprise
 
#33

Re: Über Timer Stringlist 'weiterschalten'

  Alt 28. Mai 2007, 18:44
(bitte nicht wieder wg. Einrückung schlagen )

GetData-Procedure:

Delphi-Quellcode:
procedure TForm2.GetData;
var y,ya: Integer;
begin
Label7.Caption:=TimeToStr(Time);
Label8.Caption:=DateToStr(Now);
if not (Query1.RecordCount=0) then begin
 SetLength(Daten,Query1.RecordCount);

  for y:=1 to Query1.RecordCount do begin
    daten[y-1].klasse:=Query1.FieldByName('KLASSEN').AsString;
    daten[y-1].stunde:=Query1.FieldByName('S').AsString+'.';
    daten[y-1].fuer:=Query1.FieldByName('FUER').AsString;
    daten[y-1].wer:=Query1.FieldByName('WER').AsString;
    daten[y-1].fach:=Query1.FieldByName('FACH').AsString;
    daten[y-1].bemerkung:=Query1.FieldByName('BEMER_SCH').AsString;
    daten[y-1].raum:=Query1.FieldByName('RAUM').AsString;

    Query1.Next;
  end;

  gesseiten:=length(Daten) div 19;
  aktuseite:=0;
 end;

if NOT (Query2.RecordCount=0) then begin
 SetLength(Daten2,Query2.RecordCount);
  for ya:=1 to Query2.RecordCount do begin
    daten2[ya-1].klasse:=Query2.FieldByName('KLASSEN').AsString;
    daten2[ya-1].stunde:=Query2.FieldByName('S').AsString+'.';
    daten2[ya-1].wer:=Query2.FieldByName('WER').AsString;
    daten2[ya-1].fuer:=Query2.FieldByName('FUER').AsString;
    daten2[ya-1].fach:=Query2.FieldByName('FACH').AsString;
    daten2[ya-1].bemerkung:=Query2.FieldByName('BEMER_SCH').AsString;
    daten2[ya-1].raum:=Query2.FieldByName('RAUM').AsString;

    Query2.Next;
  end;

  gesseitena:=length(Daten2) div 19;
  aktuseitea:=0;
end;
end;
Timer-Aufruf:

Delphi-Quellcode:
procedure TForm2.TimerReloadTimer(Sender: TObject);
var
   Ini: TIniFile;
   y,ya,i,ia,count,counta,ReloadTime,dnr:integer;
   morgen_m,heute_d,morgen_d: String;
   tomorrow,today: TDateTime;
begin
GetData;

  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 if dnr=1 then begin
   today:=Date+1;
   tomorrow:=Date+2;
  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
  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].bemerkung;
    stringgrid1.Cells[6,i+1]:= Daten[i+y].raum;
  end;

  if AktuSeite = GesSeiten then
    AktuSeite := 0
  else
    AktuSeite:=AktuSeite+1;

 heute_d := LongDayNames[DayOfWeek(today)];

 Label5.Caption:='Vertretungsplan für den';
 Label6.Caption:=DateToStr(today)+' ('+heute_d+')';

 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[2,ia+1]:= Daten2[ia+ya].fuer;
    stringgrid2.Cells[3,ia+1]:= Daten2[ia+ya].wer;
    stringgrid2.Cells[4,ia+1]:= Daten2[ia+ya].fach;
    stringgrid2.Cells[5,ia+1]:= Daten2[ia+ya].bemerkung;
    stringgrid2.Cells[6,ia+1]:= Daten2[ia+ya].raum;
  end;

  if AktuSeitea = GesSeitena then
    AktuSeitea := 0
  else
    AktuSeitea:=AktuSeitea+1;

  morgen_d := LongDayNames[DayOfWeek(tomorrow)];

  Label5.Caption:='Vertretungsplan für den';
  Label6.Caption:=DateToStr(tomorrow)+' ('+morgen_d+')';

 end
 else if PageControl1.TabIndex=2 then begin
  Label5.Caption:='Meldungen';
  Label6.Caption:='';
 end;

 TimerReload.Interval:=ReloadTime;
 if PageControl1.TabIndex=0 then TimerNextTab.Interval:=ReloadTime*(GesSeiten+1)
 else if PageControl1.TabIndex=1 then TimerNextTab.Interval:=Reloadtime*(GesSeitena+1)
 else if Pagecontrol1.TabIndex=2 then TimerNextTab.Interval:=ReloadTime;
 TimerNextTab.Enabled:=True;
end;
Sven Kannenberg
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz