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
Antwort Antwort
Seite 4 von 4   « Erste     234   
Svenkan

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

Re: Über Timer Stringlist 'weiterschalten'

  Alt 28. Mai 2007, 18:38
Ich hab das jetzt ja in den normalen Timer mit reingesetzt, wo auch dann nach im Moment 10s gewechselt wird.
Die erste Seite wird ganz normal aufgerufen.
Vorher wurde die Funktion GetData nur im FormCreate ausgeführt, da hats funktioniert (es wurden nur leider dann die Sachen geladen, die zu dem Zeitpunkt in der .dbf waren).
Oder kann es sein, dass irgendwie etwas wieder freigegeben werden muss?
Sven Kannenberg
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#32

Re: Über Timer Stringlist 'weiterschalten'

  Alt 28. Mai 2007, 18:41
Ohne den Source zu kennen, kann ich da nichts zu sagen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
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
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#34

Re: Über Timer Stringlist 'weiterschalten'

  Alt 28. Mai 2007, 18:48
Hallo, das sieht so aus, als ob Deine Queries die ganze Zeit über offen sind. Dadurch behalten sie natürlich ihre ursprüngliche Datenmenge. Mach mal am Anfang von GetData ein
Delphi-Quellcode:
Query1.Close;
Query2.Close;
Query1.Open;
Query2.Open;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Svenkan

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

Re: Über Timer Stringlist 'weiterschalten'

  Alt 28. Mai 2007, 18:51
Jetzt wird immer nur die erste Seite des jeweiligen Tages angezeigt (und zwar x Mal, je nachdem, wie viele Seiten es insg. gibt).
Aber immerhin werden die gezeigten Werte schonmal korrekt dargestellt (was ja daran liegt, dass der Timer zum Tabwechsel danach ausgelegt ist).

/edit: Es funktioniert! Hatte noch vergessen rauszunehmen, dassa dann autom. jedes Mal auf die Seite 0 schaltet. Dankeschön!
Sven Kannenberg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


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 01:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz