Announcement

Collapse
No announcement yet.

Ads Datumsformat /kein gültiges Datum

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ads Datumsformat /kein gültiges Datum

    Hallo zusammen,
    sitze momentan an einem anderen Projekt, bei dem ich momentan nicht weiter komme. Das Programm soll das Windows Datumsformat auslesen und überprüfen, ob es mit dem Datumsformat der Komponente "AdsSettings" übereinstimmt, wenn nicht soll dem Ads Datumsformat das Windowsdatumsformat zugewiesen werden.
    PHP Code:
    procedure TForm1.btnDatumClick(SenderTObject);
    var
      
    aDatumTDateTime;
    begin
      begin
      aDatum
    := StrToDate(ShortDateFormat); <-- hier knallt er (Screen im Anhang)
      if 
    not (AdsSettings1.DateFormat = (DateToStr(aDatum))) then
      begin
      ShowMessage
    ('Datumsformat wird geändert');
      
    AdsSettings1.DateFormat:='dd.mm.yyyy';
      
    end
      
    else
      
    ShowMessage('Datumsformat stimmt');
      
    end;
    end


    mfg
    Attached Files
    Zuletzt editiert von Metallicwar; 29.07.2010, 10:34.

  • #2
    AdsSettings1.DateFormat:='dd.mm.yyyy';

    Er wird wohl eher an obiger Stelle den Fehler werfen....
    Christian

    Comment


    • #3
      kann mit deiner Antwort leider nichts anfangen, sorry.
      Wo soll ich das eintragen?
      Der Fehler erscheint doch in line 6
      aDatum:= StrToDate(ShortDateFormat);
      hab doch breakpoints gesetzt. Wieso sollte der Fehler dann in einer anderen Line auftreten?
      mfg

      Comment


      • #4
        Dann wird wohl "dd.mm.YYYY" in ShortDateFormat drin stehen. Wäre ja zu erwarten

        Wie sollte das ein Datum ergeben?
        Christian

        Comment


        • #5
          ShortDateFormat lieftert doch das kurze Windowsdatumsformat zurück oder liege ich falsch?
          und in Windows habe ich eingestellt: tt-mm-yyyy
          Was muss ich da nun ändern?
          mfg

          Comment


          • #6
            ShortDateFormat lieftert doch das kurze Windowsdatumsformat zurück oder liege ich falsch?
            Sicher, und was macht StrToDate? Es wandelt einen String in ein Datum um. Was willst du bei tt.mm.YYYY in ein Datum wandeln?
            Und auch nur um eine Zeile später gleich wieder zurückzuwandeln??


            if not (AdsSettings1.DateFormat =ShortDateFormat) then
            Christian

            Comment


            • #7
              So sieht mein Code jetzte aus:
              PHP Code:
              procedure TForm1.btnDatumClick(SenderTObject);
              begin
                
              if not (AdsSettings1.DateFormat ShortDateFormatthen
                begin
                ShowMessage
              ('Datumsformat wird geändert');
                
              AdsSettings1.DateFormat:=ShortDateFormat;
                
              end
                
              else
                
              ShowMessage('Datumsformat stimmt');
              end
              Zuerst wird ja abgefragt ob das ADSSettings Datumsformat NICHT mit dem des Systems übereinstimmt, anschließend wird das ADSSettings Datumsformat geändert.?!?

              Falls es dass war und alles stimmt, bedank ich mich bei dir Christian

              Comment


              • #8
                Hallo, es besteht leider dochnoch ein Problem ^^

                showmessage(mapDB.AdsSettings1.DateFormat);
                if not (mapDB.AdsSettings1.DateFormat = ShortDateFormat) then
                mapDB.AdsSettings1.DateFormat:=ShortDateFormat;
                showmessage(mapDB.AdsSettings1.DateFormat);
                showmessage(ShortDateFormat);
                Meine erste ShowMessage gibt mir aus = (dd.MM.ccyy)
                zweite " " = (dd.MM.yyyy)
                dritte " " = (dd.MM.yyyy)

                Ich dachte ShortDateFormat liefter mir doch Windows Datumsformat. In meinen Systemeinstellungen steht das Datumsformat allerdings auf TT-MM-JJJJ
                und die showmessage(ShortDateFormat) liefter mir (dd.MM.yyyy)??!?!?!
                Kann mich bitte jemand aufklären, steh grad etwas auf dem Schlauch.
                mfg

                Comment


                • #9
                  Kann mir keiner weiterhelfen?

                  Comment


                  • #10
                    Was ist das Problem?

                    Das Format in mapDB.AdsSettings1 entspricht nicht dem ShortDateFormat. Somit wird es gesetzt und entspricht dann diesem.
                    Christian

                    Comment


                    • #11
                      Ausgangslage:
                      Windowsdatum: TT-MM-JJJJ
                      Datumeinstellung im Advantage Data Architect: dd-MM-ccyy
                      DataFormat der AdsSettings: dd.MM.ccyy
                      meine ShowMessages geben mir folgendes aus:
                      showmessage(mapDB.AdsSettings1.DateFormat); --> dd.MM.ccyy (DAS PASST)
                      if not (mapDB.AdsSettings1.DateFormat = ShortDateFormat) then
                      mapDB.AdsSettings1.DateFormat:=ShortDateFormat; (Das DateFormat der Komponente stimmt ja nicht mit der des Windowsformats überein, also sollte das mapDB.AdsSettings Datumsformat geändert werden. ABER meine nächsten ShowMessages meinen etwas anderes
                      ShowMessage(mapDB.AdsSettings.DateFormat) --> dd.MM.yyyy (das stimmt doch nicht, da mein Windowsformat doch auf dd-MM-yyyy steht)
                      komischerweise gibt mir die letzte ShowMessage, die das ShortDateFormat prüfen(Windowsdatum) auch nur dd.MM.yyyy aus!!!
                      Versteh ich irgendwie nicht, was ich falsch mache ...

                      Comment


                      • #12
                        Hier meine Lösung:

                        procedure TForm1.cTestBeforeConnect(Sender: TObject);
                        var
                        fs: TFormatSettings;
                        begin
                        GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT,fs);
                        if not (mapDB.AdsSettings1.DateFormat = fs.ShortDateFormat) then
                        mapDB.AdsSettings1.DateFormat:= fs.ShortDateFormat;
                        end;

                        Comment


                        • #13
                          Hier meine Lösung:

                          Code:
                          procedure TForm1.cTestBeforeConnect(Sender: TObject);
                          var
                          fs: TFormatSettings;
                          begin
                          GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT,fs);
                          if not (mapDB.AdsSettings1.DateFormat = fs.ShortDateFormat) then
                          mapDB.AdsSettings1.DateFormat:= fs.ShortDateFormat;
                          end;

                          Comment

                          Working...
                          X