![]() |
Datum umwandeln..
Hallo zusammen, weiß nicht wie ich mein momentanes Problem lösen kann.
Folgendes.. Habe zwei Projektkonstanten die öfters verwendet werden z.B. in ShowMessages.
Delphi-Quellcode:
....SDatumVon0101 = 'Datum von: 01.01.'; SBis3112 = 'bis 31.12.';
Delphi-Quellcode:
Das ist aber logischerweiße nur korrekt, wenn das Datumsformat auf dd.MM.yyyy steht.
lbPrjDatumAlt.Caption := SDatumVon0101 + IntToStr(year) + #13#10 + ' ' +
SBis3112 + IntToStr(year); An anderen Stellen kann ich das Datum ohne Probleme anpassen.
Delphi-Quellcode:
Aber wie könnte ich das Datum der Projektkonstanten ändern?!? z.B. auf T.M.JJ oder ein anderes?
qJahresplan.SQL.Text := 'INSERT INTO Jahresplan (Startdatum, Enddatum) VALUES (' +
QuotedStr(DateToStr(EncodeDate(year,10,01))) + ',' + QuotedStr(DateToStr(EncodeDate(year,12,31))) + ')'; ... Hoffe ihr versteht mein Problem mfg David |
AW: Datum umwandeln..
Verwende bei SQL-Abfragen am Besten Parameter
|
AW: Datum umwandeln..
Hallo...
Idee aus dem Bauch: Statt Konstante als Variable und via DateUtils beim Start des Programmes entsprechend der Systemeinstellungen setzen. |
AW: Datum umwandeln..
Das mit dem datum hab ich so gemacht:
Delphi-Quellcode:
procedure TfrmUmwandeln.FormShow(Sender: TObject);
var fs: TFormatSettings; begin GetLocaleFormatSettings(LOCALE_SYSTEM_DEFAULT,fs); if not (AdsSettings1.DateFormat = fs.ShortDateFormat) then AdsSettings1.DateFormat:= fs.ShortDateFormat; Zitat:
mfg |
AW: Datum umwandeln..
Delphi-Quellcode:
und dann vor Ort über
const SDatum = 'Datum von: %s bis %s';
![]() Wobei für SQL dieses auch in etwa damit
Delphi-Quellcode:
und über dieses die predefinierten Parameter machen könnte, wie schon bei "Verwende bei SQL-Abfragen am Besten Parameter" vorgeschlagen.
const SDatum = 'Datum von: :VON bis :BIS';
In beiden Fällen dann den ganzen String über DateToStr + EncodeDate befüllen. |
AW: Datum umwandeln..
Uff ^^
das mit dem Format, peil ich schon nicht... :( war auf ![]() d = Decimal (integer) e = Scientific f = Fixed g = General m = Money n = Number (floating) p = Pointer s = String u = Unsigned decimal x = Hexadecimal Also erst die Parameter mit Format füllen (was ich nicht verstehe) ^^ und dann eben diese zwei Parameter über DateToStr und EncodeDate befüllen?!? Vll nen kleines Beispiel, an dem ich mich orientieren kann? |
AW: Datum umwandeln..
Such mal nach FormatDateTime (SysUtils) in Deiner lokalen Hilfe ...
|
AW: Datum umwandeln..
Das sind 2 Dinge; Format für Anzeigestrings und der Parameter bei SQL-Abfragen
Delphi-Quellcode:
var
von, bis: TDate; ... von := EcodeDate( jahr, 1, 1); bis := EncodeDate ( Jahr, 12, 31); ... anzeige := 'Von ' + FormatDateTime( 'dd.mm.yyyy', von) + ' bis ' + FormatDateTime( 'dd.mm.yyyy', bis); qJahresplan.SQL.Text := 'INSERT INTO Jahresplan (Startdatum, Enddatum) VALUES ( :start, :ende)'; qJahresplan.ParamByName('start').Value := von; qJahresplan.ParamByName('end').Value := bis; ... |
AW: Datum umwandeln..
Delphi-Quellcode:
So schwer ist ds doch eigentlich nicht?
SDatumVon := 'von ';
SDatumBis := ' bis '; Anzeige := SDatumVon + DateToStr(von) + SDatumBis + DateToStr(bis); SDatum := 'von %s bis %s'; Anzeige := Format(SDatum, [DateToStr(von), DateToStr(bis)]); |
AW: Datum umwandeln..
Delphi-Quellcode:
Als Projektkonstanten hab ich ja schon SDatumVon, SDAtumBis die einen festen Wert haben. Logisch dass diesen Konstanten keine anderen Werte zugeordnet werden können.
const
SDatumVon = '01.01.'; SDatumBis = '31.12.'; procedure TForm1.Button1Click(Sender: TObject); var jahr: Word; von, bis: TDate; Anzeige: String; SDatum: String; begin von := EncodeDate( jahr, 1, 1); bis := EncodeDate ( Jahr, 12, 31); anzeige := 'Von ' + FormatDateTime( 'dd.mm.yyyy', von) + ' bis ' + FormatDateTime( 'dd.mm.yyyy', bis); SDatumVon := 'von '; //<-- Der linken Seite kann nichts zugewiesern werden SDatumBis := ' bis '; Anzeige := SDatumVon + DateToStr(von) + SDatumBis + DateToStr(bis); SDatum := 'von %s bis %s'; Anzeige := Format(SDatum, [DateToStr(von), DateToStr(bis)]); ShowMessage(Anzeige); end; Entferne ich diese Projektkonstanten und deklariere sie als einfache Stringvariable
Delphi-Quellcode:
What am I doing wrong?
procedure TForm1.Button1Click(Sender: TObject);
var jahr: Word; von, bis: TDate; Anzeige: String; SDatum: String; sDatumVon, SDatumBis: String; begin von := EncodeDate( jahr, 1, 1); // --> Ungültiges Argument zum Codieren des Datums. bis := EncodeDate ( Jahr, 12, 31); anzeige := 'Von ' + FormatDateTime( 'dd.mm.yyyy', von) + ' bis ' + FormatDateTime( 'dd.mm.yyyy', bis); SDatumVon := 'von '; SDatumBis := ' bis '; Anzeige := SDatumVon + DateToStr(von) + SDatumBis + DateToStr(bis); SDatum := 'von %s bis %s'; Anzeige := Format(SDatum, [DateToStr(von), DateToStr(bis)]); ShowMessage(Anzeige); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:27 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