| Autor |
Beitrag |
coocky
      
Beiträge: 17
|
Verfasst: Mo 25.02.08 15:14
Hi,
wir haben ein Bibliotheksprogramm geschrieben, in dem ausgeliehene Bücher gespeichert werden. Wenn das ausgeliehene Datum überschritten ist, dann sollte normalerweise eine message kommen "Ausleihdatum überschritten".
Folgenden Quelltext haben wir bis jetzt:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| if FileExists ('Bücherliste3.txt') then ListBox3.Items.LoadFromFile('Bücherliste3.txt'); for lIx := 0 to ListBox1.Items.Count-1 do begin lInt := StrToIntDef(ListBox1.Items.Strings[lIx], 0); if lInt<Now then showmessage('Ausleihdatum überschritten'); listBox2.Canvas.Font.color:=clgreen; |
jetzt kommt aber immer eine message, egal ob überschritten oder nicht.
Bitte helft uns.
MfG Moderiert von Narses: Topic aus Multimedia / Grafik verschoben am Mo 25.02.2008 um 15:44
|
|
Nico72
      
Beiträge: 50
Win XP, Vista
Delphi 7, Delphi 2006
|
Verfasst: Mo 25.02.08 15:43
Hallo,
was steht denn in ListBox1.Items.Strings[lIx] drin?
|
|
zuma
      
Beiträge: 660
Erhaltene Danke: 21
Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
|
Verfasst: Mo 25.02.08 16:26
coocky hat folgendes geschrieben: |
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| lInt := StrToIntDef(ListBox1.Items.Strings[lIx], 0); if lInt<Now then showmessage('Ausleihdatum überschritten'); listBox2.Canvas.Font.color:=clgreen; |
|
falls in Listbox1.Items.Strings[i]) ein Datum steht, wäre die
StrToIntDef()- function zu ersetzen durch eine
StrToDateTimeDef()-function zu ersetzen
_________________ Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
|
|
coocky 
      
Beiträge: 17
|
Verfasst: Mo 25.02.08 19:18
Nico72 hat folgendes geschrieben: | Hallo,
was steht denn in ListBox1.Items.Strings[lIx] drin? |
in der listbox steht das rückgabedatum drin
|
|
nagel
      
Beiträge: 708
Win7, Ubuntu 10.10
|
Verfasst: Mo 25.02.08 20:12
coocky hat folgendes geschrieben: | Nico72 hat folgendes geschrieben: | Hallo,
was steht denn in ListBox1.Items.Strings[lIx] drin? |
in der listbox steht das rückgabedatum drin |
Du kannst ein Datum nicht mit StrToInt in einen Integer-Wert konvertieren.
|
|
coocky 
      
Beiträge: 17
|
Verfasst: Di 26.02.08 17:37
ja und wie dann? das is ja unter anderem unser problem das wir nich wissen wie man das macht wir kennen halt nur das StrToInt
|
|
Nico72
      
Beiträge: 50
Win XP, Vista
Delphi 7, Delphi 2006
|
Verfasst: Di 26.02.08 17:43
coocky hat folgendes geschrieben: |
falls in Listbox1.Items.Strings[i]) ein Datum steht, wäre die
StrToIntDef()- function zu ersetzen durch eine
StrToDateTimeDef()-function |
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Mi 27.02.08 09:12
coocky hat folgendes geschrieben: | | ja und wie dann? |
Die Funktion StrToDateTime() sollte Euch helfen.
Lg, Martin
_________________ Ein Nutzer der Ecke
|
|
zuma
      
Beiträge: 660
Erhaltene Danke: 21
Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
|
Verfasst: Mi 27.02.08 09:36
@cooky:
... wer fragt sollte auch die Antworten LESEN ...
Lösung steht in meinem ersten Post hier und wurde auch schon von Nico72 zitiert !
_________________ Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
|
|
Martin1966
      
Beiträge: 1068
Win 2000, Win XP
Delphi 7, Delphi 2005
|
Verfasst: Mi 27.02.08 10:32
zuma hat folgendes geschrieben: | @cooky:
... wer fragt sollte auch die Antworten LESEN ... |
Vielleicht hat cooky es einfach nur überlesen 
_________________ Ein Nutzer der Ecke
|
|
coocky 
      
Beiträge: 17
|
Verfasst: Mi 27.02.08 17:50
zuma hat folgendes geschrieben: | @cooky:
... wer fragt sollte auch die Antworten LESEN ...
Lösung steht in meinem ersten Post hier und wurde auch schon von Nico72 zitiert ! |
wir lesen das schon nur wir verstehen die antworten oft nicht weil wir arbeiten erst seit nem halben jahr in der schule mit delphi und sind da noch nich so bewandert das wir eure antworten immer gleich in die tat umsetzen können.
also ich hab jetz die funktion ersetzt
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| var lIx , lInt : integer; if FileExists ('Bücherliste3.txt') then ListBox3.Items.LoadFromFile('Bücherliste3.txt'); for lIx := 0 to ListBox3.Items.Count-1 do begin lInt := StrToDateTimeDef(ListBox3.Items.Strings[lIx], 0); if lInt<Now then showmessage('Ausleihdatum überschritten'); |
und jetzt kommt aber die Fehlermeldung: "Inkompatible Typen "Integer" und "TDateTime"
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mi 27.02.08 17:53
coocky hat folgendes geschrieben: | | und jetzt kommt aber die Fehlermeldung: "Inkompatible Typen "Integer" und "TDateTime" |
Die Fehlermeldung sagt es ja schon aus.  Du rufst die Funktion StrToDateTimeDef auf und die gibt das Funktonsergebnis im TDateTime Format zurück. Du versuchst aber der Variable lInt den Wert zuzuweisen. Und lInt ist vom Typ Integer. 
|
|
coocky 
      
Beiträge: 17
|
Verfasst: Do 28.02.08 16:30
also ich hab das jetz geändert und jetz kommt zwar keine fehlermeldung mehr aber jetzt funktionierts nicht mehr. Also die message erscheint jetzt immer, auch wenn das Datum nicht überschritten ist.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.FormCreate(Sender: TObject); var lIx : integer; lInt : TDateTime; Ueberschritten : Boolean; begin if FileExists ('Bücherliste3.txt') then ListBox3.Items.LoadFromFile('Bücherliste3.txt'); for lIx := 0 to ListBox3.Items.Count-1 do begin lInt := StrToDateTimeDef(ListBox3.Items.Strings[lIx], 0); if lInt<Now then Ueberschritten:=True; end; if Ueberschritten=True Then ShowMessage('Ausleihdatum überschritten'); end; |
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Do 28.02.08 18:13
Da boolische Variablen meines Erachtens standardmäßig True sind, solltest Du "ueberschritten" vorher auf False setzen.
Grüße
Marc.
|
|
nagel
      
Beiträge: 708
Win7, Ubuntu 10.10
|
Verfasst: Fr 29.02.08 11:23
Das hab ich dir doch hier schon reingeschrieben und sogar gehighlighted 
|
|