![]() |
Danke erstmal, aber das Problem ist, dass ich sowohl nach Datum, als auch nach der Uhrzeit sortieren müsste. Mit der Variante im FAQ ist nur eines von beiden möglich, wie ich soeben getestet habe. Ich müsste es also mit einer einfachen Abfrage machen, mit welcher ich ja auch schon begonnen habe.
@Tpercon: Was hast du mit deiner Terminkontrolle eigentlich genau kontrolliert? Gruß Yheeky |
Oder du verteilst Datum und Uhrzeit auf 2 Spalten. Könnte man dadurch sogar einfach editieren.
|
Sind 2 Spalten...
|
Ich habe mir damals an Hand von Symbolen anzeigen lassen, mit wem man innerhalb der nächsten 14 Tage einen Termin hat...
Dass Sortieren ist doch kein Problem, du mußt doch die Uhrzeit nur noch ins Spiel bringen, wenn das Datum gleich ist. Falls du noch Code brauchst, sag bescheid. Komme aber frühestens erst morgen früh dazu. Gruß |
Also ich habe meine letzte Procedure überarbeitet und nun kam ich zu folgender:
Code:
Hier muss ich jetzt noch die zum nächsten Termin zugehörige Uhrzeit auslesen. Könnte mir dazu jemand Tipps geben? Wie könnte ich das machen?
public
FirstTimeDate, FirstTimeTime : Boolean; Datum, Zeit : Integer; Datum1, Datum2, Zeit1, Zeit2 : TDateTime; . . . procedure TForm1.SucheNeustenTermin; var I : Integer; begin for I := 0 to SmartListView1.Items.Count-1 do begin Datum1 := EncodeDate(StrToInt(Copy(SmartListView1.Items[I].SubItems[1],7,4)),StrToInt(Copy(SmartListView1.Items[I].SubItems[1],4,2)),StrToInt(Copy(SmartListView1.Items[I].SubItems[1],0,2))); Datum2 := EncodeDate(StrToInt(Copy(DateToStr(Date),7,4)),StrToInt(Copy(DateToStr(Date),4,2)),StrToInt(Copy(DateToStr(Date),0,2))); Datum := Trunc(Datum1) - Trunc(Datum2); if Datum = 0 then if SmartListView1.Items.Count = 1 then StatusBar2.Caption := SmartListView1.Items[I].SubItems[1] + ' / ' + SmartListView1.Items[I].SubItems[2]; if Datum > 0 then begin if FirstTimeDate = True then begin Datum1 := EncodeDate(StrToInt(Copy(SmartListView1.Items[0].SubItems[1],7,4)),StrToInt(Copy(SmartListView1.Items[0].SubItems[1],4,2)),StrToInt(Copy(SmartListView1.Items[0].SubItems[1],0,2))); Datum2 := EncodeDate(StrToInt(Copy(DateToStr(Date),7,4)),StrToInt(Copy(DateToStr(Date),4,2)),StrToInt(Copy(DateToStr(Date),0,2))); Datum := Trunc(Datum1) - Trunc(Datum2); NeustesDatum := IntToStr(Datum); end; Datum1 := EncodeDate(StrToInt(Copy(SmartListView1.Items[I].SubItems[1],7,4)),StrToInt(Copy(SmartListView1.Items[I].SubItems[1],4,2)),StrToInt(Copy(SmartListView1.Items[I].SubItems[1],0,2))); Datum2 := EncodeDate(StrToInt(Copy(DateToStr(Date),7,4)),StrToInt(Copy(DateToStr(Date),4,2)),StrToInt(Copy(DateToStr(Date),0,2))); Datum := Trunc(Datum1) - Trunc(Datum2); if SmartListView1.Items.Count = 1 then StatusBar2.Caption := SmartListView1.Items[I].SubItems[1] + ' / ' + SmartListView1.Items[I].SubItems[2]; if Datum < StrToInt(NeustesDatum) then begin StatusBar2.Caption := SmartListView1.Items[I].SubItems[1] + ' / ' + SmartListView1.Items[I].SubItems[2]; NeustesDatum := IntToStr(Datum); FirstTimeDate := False; end; end; end; end; Die EncodeTime Funktion funktionierte komischerweise nicht so, wie ich mir das vorgestellt habe, obwohl ich sie wie die Funktion EncodeDate angewendet habe. Als Ergebnis bekomme ich immer 0. Gruß Yheeky |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20: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