Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem beim ausgeben von FDaten.Strings[i] und mehr... (https://www.delphipraxis.net/135092-problem-beim-ausgeben-von-fdaten-strings%5Bi%5D-und-mehr.html)

Fussel9 4. Jun 2009 18:03


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:
  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;
das ist ein kleines Stück von meiner OnCreate , diese wird auch ordnungsgemäß ausgeführt bis zu deisem Stück Quelltext, weiß irgendwer wieso?

FDaten (eine StringList) ist ordnungsgemäß deklariert und es erscheint KEINE FEHLERMELDUNG, es wird quasi einfach übersehen von Delphi...

:(

shmia 4. Jun 2009 18:06

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

Fussel9 4. Jun 2009 18:20

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:
  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;
und er zeigt mir keine Message an

mkinzler 4. Jun 2009 18:22

Re: Problem beim ausgeben von FDaten.Strings[i] und mehr...
 
Zitat:

if Trunc(StrToDate(FDaten.Strings[i])) = Trunc(vdatum) then

p80286 4. Jun 2009 18:25

Re: Problem beim ausgeben von FDaten.Strings[i] und mehr...
 
sicher das Fdaten.Count >0 ist?

Gruß
K-H

Fussel9 4. Jun 2009 18:28

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

Fussel9 4. Jun 2009 18:29

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;

mkinzler 4. Jun 2009 18:37

Re: Problem beim ausgeben von FDaten.Strings[i] und mehr...
 
Die StringListe ist allerdings leer. Du hast vergessen die Ini zu laden

Fussel9 4. Jun 2009 18:38

Re: Problem beim ausgeben von FDaten.Strings[i] und mehr...
 
wo soll ich sie denn laden habs schon so:

Delphi-Quellcode:
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;
versucht, das klappt auch nicht...

mkinzler 4. Jun 2009 18:43

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 22:58 Uhr.
Seite 1 von 2  1 2   

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