Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   wie auf bestimmte zeit reagieren?? (https://www.delphipraxis.net/107114-wie-auf-bestimmte-zeit-reagieren.html)

DeddyH 24. Jan 2008 15:42

Re: wie auf bestimmte zeit reagieren??
 
wDayOfWeek ist ein Feld des Records ;)

lbccaleb 24. Jan 2008 17:56

Re: wie auf bestimmte zeit reagieren??
 
ok das klappt alles bestens, jetzt aber noch nen kleines problem, wenn ich nun den wochentag von morgen, übermorgen, sonstwann haben will wie mach ich das in dem fall??

DeddyH 24. Jan 2008 18:19

Re: wie auf bestimmte zeit reagieren??
 
Für diese Lösung brauchst Du aber wieder SysUtils (ich war zu faul zum Rechnen :mrgreen: ):
Delphi-Quellcode:
var SysTime: TSystemTime;
    dtTime: TDateTime;
    Tag: string;
begin
  GetSystemTime(SysTime);
  dtTime := SystemTimeToDateTime(SysTime);
  dtTime := dtTime + 1;
  DateTimeToSystemTime(dtTime,SysTime);
  case SysTime.wDayOfWeek of
    0: Tag := 'Sonntag';
    1: Tag := 'Montag';
    2: Tag := 'Dienstag';
    3: Tag := 'Mittwoch';
    4: Tag := 'Donnerstag';
    5: Tag := 'Freitag';
    6: Tag := 'Samstag';
  end;
  ShowMessage('Morgen ist ' + Tag);
end;
[edit] Viel zu kompliziert gedacht :mrgreen:
Delphi-Quellcode:
function WhichDayOfWeek(st: TSystemTime; const DaysToAdd: Integer): string;
begin
  st.wDayOfWeek := (st.wDayOfWeek + DaysToAdd) mod 7;
  case st.wDayOfWeek of
    0: Result := 'Sonntag';
    1: Result := 'Montag';
    2: Result := 'Dienstag';
    3: Result := 'Mittwoch';
    4: Result := 'Donnerstag';
    5: Result := 'Freitag';
    6: Result := 'Samstag';
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var SysTime: TSystemTime;
begin
  GetSystemTime(SysTime);
  ShowMessage(Format('Morgen ist %s',[WhichDayOfWeek(SysTime,1)]));
end;
[/edit]

lbccaleb 24. Jan 2008 19:36

Re: wie auf bestimmte zeit reagieren??
 
naja so falsch gedacht war das nicht, denn wie im anderen post geschrieben funktioniert das leider nicht mit den aufaddieren der tagen, das macht er nicht... wenn ich die funktion dann auf dem 31 benutzen würde, hätte er den 38.01.2008 in seiner list ;-( und den gibs nicht ;-)

lbccaleb 26. Jan 2008 18:40

Re: wie auf bestimmte zeit reagieren??
 
das vergleichen der systemtime hab ich jetzt gelöst, auf einem ähnlichen weg wie es schon "Tyrael Y." vorgeschlagen hat! in der api konnte ich allerdings noch ein paar funktionen für einen leichteren schnelleren weg finden...

Delphi-Quellcode:
function IsTimeRunningOut(TimeToCompare: TSystemTime): Boolean;
var
  Now, TempTime: TFileTime;
  begin;
    GetSystemTimeAsFileTime(Now);
    SystemTimeToFileTime(TimeToCompare, TempTime);
    case CompareFileTime(Now, TempTime) of
      -1: result := False;
       0: result := True;
       1: result := True;
    end;  
  end;
die ausgabe ist dann:

false wenn die zeit "TimeToCompare" noch nciht erreicht ist
true wenn die zeit erreicht oder überschritten wurde


vllt hilft es ja noch jemand ;-)

edit noch mal überarbeitet und eine boolean variable draus gemacht..


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:55 Uhr.
Seite 3 von 3     123   

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