![]() |
Problem beim ausgeben von FDaten.Strings[i] und mehr...
Hi, ich bins mal wieder, habe auch mal wieder ein Problem in Delphi, mit ini-Dateien:
Delphi-Quellcode:
das ist ein kleines Stück von meiner OnCreate , diese wird auch ordnungsgemäß ausgeführt bis zu deisem Stück Quelltext, weiß irgendwer wieso?
vdatum:=Now-1;
for i := 0 to FDaten.Count -1 do begin if StrToDate(FDaten.Strings[i]) = vdatum then StGr.Cells[1,2]:=FDaten.Strings[i]; end; end; FDaten (eine StringList) ist ordnungsgemäß deklariert und es erscheint KEINE FEHLERMELDUNG, es wird quasi einfach übersehen von Delphi... :( |
Re: Problem beim ausgeben von FDaten.Strings[i] und mehr...
Delphi-Quellcode:
vdatum:=Now-1; // falsch - Now() liefert Datum plus Uhrzeit
vdatum:=Date-1; // richtig, nur der Datumsanteil wird benötigt |
Re: Problem beim ausgeben von FDaten.Strings[i] und mehr...
Danke, funktioniert aber leider immer noch nicht,
habe den Code zum Testen mal wie folgt umgeschrieben:
Delphi-Quellcode:
und er zeigt mir keine Message an
vdatum:=Date-1;
for i := 0 to FDaten.Count -1 do begin ShowMessage(FDaten.Strings[i]); if StrToDate(FDaten.Strings[i]) = vdatum then StGr.Cells[1,2]:=FDaten.Strings[i]; end; end; |
Re: Problem beim ausgeben von FDaten.Strings[i] und mehr...
Zitat:
|
Re: Problem beim ausgeben von FDaten.Strings[i] und mehr...
sicher das Fdaten.Count >0 ist?
Gruß K-H |
Re: Problem beim ausgeben von FDaten.Strings[i] und mehr...
ja, denn hier mal der inhalt meiner ini:
[123] tag=1 monat=2 jahr=3 wagen=321 stundengesamt=123 stunden=321 kilometer=123 anmerkungen=321 datum=01.02.03 [223] datum=02.02.09 wagen=332 stundengesamt=223 stunden=332 kilometer=223 anmerkungen=332 [23] datum=27.05.2009 wagen=T stundengesamt=e stunden=s kilometer=t anmerkungen=! [27.05.2009] datum=27.05.2009 wagen=273 stundengesamt=8 stunden=6 kilometer=25 anmerkungen=... [25] datum=27.05.2009 wagen=273 stundengesamt=8 stunden=6 kilometer=25 anmerkungen=... [Test] datum=03.06.2009 wagen=Test stundengesamt=Test stunden=Test kilometer=Test anmerkungen=Test [03.06.2009] datum=03.06.2009 wagen=Test stundengesamt=Test stunden=Test kilometer=Test anmerkungen=Test |
Re: Problem beim ausgeben von FDaten.Strings[i] und mehr...
das mit dem Trunc ist mir Schleierhaft: der Fehler muss ja vor der if then else liegen da er keine Message ausgibt...
hier mal der gesamte Quelltext bis zum ende der OnCreate:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls, IniFiles, Unit2, ImgList, jpeg, ExtCtrls; type TForm1 = class(TForm) EDatum: TEdit; EUmlauf: TEdit; EWagen: TEdit; EAnmerkung: TEdit; EStundenG: TEdit; EStunden: TEdit; EKilometer: TEdit; StGr: TStringGrid; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Bsave: TButton; ELaden: TEdit; Label7: TLabel; Bload: TButton; BCalc: TButton; Label8: TLabel; Image: TImage; EGehalt: TEdit; CheckG: TCheckBox; procedure FormCreate(Sender: TObject); procedure EUmlaufChange(Sender: TObject); procedure EWagenChange(Sender: TObject); procedure EStundenGChange(Sender: TObject); procedure EStundenChange(Sender: TObject); procedure EKilometerChange(Sender: TObject); procedure EAnmerkungChange(Sender: TObject); procedure BsaveClick(Sender: TObject); procedure BloadClick(Sender: TObject); procedure BCalcClick(Sender: TObject); procedure EDatumChange(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure EGehaltChange(Sender: TObject); private { Private-Deklarationen } FDaten: TStringList; public { Public-Deklarationen } end; var Form1: TForm1; var gesamtstunden,stundenohne :Integer; var gehalt :Real; var save :TIniFile; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); var i: Integer; var vdatum :TDate; begin EDatum.Text:=DateToStr(Date); FDaten := TStringList.Create; StGr.Cells[0,1]:='Heute'; StGr.Cells[0,2]:='Gestern'; StGr.Cells[0,3]:='Vorgestern'; StGr.Cells[0,4]:='Datum'; StGr.Cells[0,5]:='Datum'; StGr.Cells[0,6]:='Woche'; StGr.Cells[0,7]:='Monat'; StGr.Cells[0,8]:='Jahr'; StGr.Cells[1,0]:='Tag'; StGr.Cells[2,0]:='Umlauf:'; StGr.Cells[3,0]:='Wagen'; StGr.Cells[4,0]:='Stunden'; StGr.Cells[5,0]:='Stunden ohne'; StGr.Cells[6,0]:='Kilometer'; StGr.Cells[7,0]:='Anmerkungen'; vdatum:=Date-1; for i := 0 to FDaten.Count -1 do begin ShowMessage(FDaten.Strings[i]); if StrToDate(FDaten.Strings[i]) = vdatum then StGr.Cells[1,2]:=FDaten.Strings[i]; end; end; |
Re: Problem beim ausgeben von FDaten.Strings[i] und mehr...
Die StringListe ist allerdings leer. Du hast vergessen die Ini zu laden
|
Re: Problem beim ausgeben von FDaten.Strings[i] und mehr...
wo soll ich sie denn laden habs schon so:
Delphi-Quellcode:
versucht, das klappt auch nicht...
save:=TIniFile.Create('.\Save\DoNotDelete.ini');
vdatum:=Date-1; for i := 0 to FDaten.Count -1 do begin ShowMessage(FDaten.Strings[i]); if StrToDate(FDaten.Strings[i]) = vdatum then StGr.Cells[1,2]:=FDaten.Strings[i]; end; end; |
Re: Problem beim ausgeben von FDaten.Strings[i] und mehr...
Dieser Befehl öffnet ja nur die Ini. Du musst diese dann natürlich noch einlesen.
-Zuerst die Sektionen -und dann pro Sektion den Wert von Datum und diesen dann in die StringListe schreiben. Aber besser wäre es ihn in einen Array mit Tdate-Werten zu schreiben |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 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