AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CompareDate gibt immer 1 aus...

Ein Thema von Codix32 · begonnen am 17. Mai 2015 · letzter Beitrag vom 26. Mai 2015
 
Codix32

Registriert seit: 23. Apr 2009
137 Beiträge
 
Delphi 2005 Personal
 
#14

AW: CompareDate gibt immer 1 aus...

  Alt 25. Mai 2015, 23:17
Zitat:
Warum?
Formatiere mal den Quelltext ordentlich und dann sieht du es bestimmt.


[edit]
Delphi-Quellcode:
function TForm1.TageDazwischen(vor, nach: TDate): Integer;
begin
  if CompareDate(vor, nach) >= 0 then
    Result := DaysBetween(vor, nach)
  else
    if CompareDate(vor, nach) < 0 then
      Result := -1
    {else
      Result := ???}
;
end;


Delphi-Quellcode:
function TForm1.TageDazwischen(vor, nach: TDate): Integer;
begin
  if CompareDate(vor, nach) >= 0 then
    Result := DaysBetween(vor, nach)
  else
    //if CompareDate(vor, nach) < 0 then // Oder das weglassen, da eh sinnlos, aber das weiß der Compiler ja nicht.
      Result := -1;
end;
Ich stehe auf dem Schlauch. Das geht auch nicht:
Delphi-Quellcode:
function TForm1.Tagedazwischen(vor, nach:TDate):Integer;
begin
 if compareDate(vor,nach) >= 0 then
    Result:= daysbetween(vor,nach)
 Else
 //if compareDate(vor,nach) < 0 then Result := -1;
    Result := -1;
end;
Es bleibt 1, auch wenn das erste Datum größer als das 2. ist.
Result := -1 wird nicht ausgegeben.
Die Fehlermeldung ist allerdings weg.

Normalerweise wird die Procedure Zeitraum(date), in der die Function liegt im OnCreate der Form aufgerufen:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  BorderIcons := [biSystemmenu];
  Statusbar1.panels[0].text:='Datum: '+ DatetoStr(Date);
  Statusbar1.panels[1].text:='Woche: '+ InttoStr(WeekOf(Date));
  Zeitraum(Date); //<- Enthält die Function Tagedazwischen
  fuelleLabels;
end;
Hier die Procedure:
Delphi-Quellcode:
procedure TForm1.Zeitraum(dt:TDate);
var
  vorTag:TDate; //<- 1 Tag vor der 1. Tablette
begin
 Gauge1.Progress:=0; Gauge2.Progress:=0;Gauge3.Progress:=0;
 vorTag:= strtoDate('17.04.2015');
  if wievieltePackung(Tagedazwischen(dt, vorTag)) >= 1 then
     Gauge1.Progress:= round(100 / 28 * Tagedazwischen(dt, vorTag));
  if wievieltePackung(daysbetween(dt, vorTag)) >= 2 then
     Gauge2.Progress:= round(100 / 28 * Tagedazwischen(dt, vorTag+incday(27)));
  if wievieltePackung(daysbetween(dt, vorTag)) > 2 then
     Gauge3.Progress:= round(100 / 28 * Tagedazwischen(dt, vorTag+incDay(55)));
     Gauge4.Progress:= round(100 / 84 * Tagedazwischen(dt, vorTag));
  if Tagedazwischen(dt, vortag) <= 84 then
     Label14.caption:= ' Tabletten genommen: ' + inttostr(Tagedazwischen(dt, vortag))+ '/84'
  else
    Label14.caption:= ' Tabletten genommen: 84/84';
    Label15.Caption:= inttostr(compareDate(dt, vortag));
end;
  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 19:33 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