Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi funktioniert StrToDate richtig? (https://www.delphipraxis.net/49939-funktioniert-strtodate-richtig.html)

alf.stefan 18. Jul 2005 15:43


funktioniert StrToDate richtig?
 
Hallo Forum

ich habe ein kleines Problem

wenn ich fogendes ausführe und in Edit 1
z.B 05-28-2005 eingebe
kommt in Label1 May-28-2005 obwohl der Formatstring mit 'mmm'
laut hilfe die Kurzform des Monatsnamen akzeptieren soll.

Ich muß aber eingaben im Format mmm-dd-yyyy' verarbeiten.
aber dann krieg ich immer einen Fehler.

wenn ich z.B : May-31-2005 eingebe krieg ich einen Fehler!!!
('Mai-28-2005' ist kein gültiges Datum.)

Kann mir mal jemand sagen warum?

Hoffe auf erklärende Antworten

Stefan



Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    procedure Edit1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
  d1 : TDate;
begin
    if key =VK_RETURN then
    begin
        ShortDateFormat := 'mmm-dd-yyyy';
        DateSeparator := '-';
        d1 := StrToDate(Edit1.Text);
        label1.Caption := dateToStr(d1);
    end;
end;

end.

marabu 18. Jul 2005 16:03

Re: funktioniert StrToDate richtig?
 
Hallo Stefan,,

die textuelle Darstellung ist keine Eingabe-Option. Wenn du das brauchst, dann wirst du es selbst basteln müssen. Zum Thema StrToDate findest du in der Online Hilfe das hier:

Zitat:

Zitat von Borland
Der String muss aus zwei oder drei Zahlen bestehen, die durch das in der globalen Variable DateSeparator bzw. deren TFormatSettings-Entsprechung definierte Zeichen voneinander getrennt sind.

Grüße vom marabu

alf.stefan 19. Jul 2005 07:00

Re: funktioniert StrToDate richtig?
 
Hallo marabu

stimmt schon was da in der Hilfe steht.
Ich dachte halt wenn die Threadsichere Variante
Delphi-Quellcode:
function StrToDate(const S: string; const FormatSettings: TFormatSettings): TDateTime; overload;
aufgerufen wird werden die Formatsettings berücksichtigt aber es kommt der gleiche Fehler.

Schade, dass das halt nicht so ist.

Trotzdem danke

Gruß

Stefan

marabu 19. Jul 2005 08:16

Re: funktioniert StrToDate richtig?
 
Der interne Zugriff auf die globalen FormatSettings ist der Grund, warum die Function in ihrer alten Form nicht thread-sicher ist. An der Funktionalität ändert sich da gar nichts. Das gilt auch für die anderen Routinen.

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:48 Uhr.

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