Autor Beitrag
lemi4ever
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Sa 16.12.06 21:36 
Ich bin im Moment soweit das ich den Vormonat in einer Zahl auslesen kann. Wobei ich hier unterstützung bekommen habe. Es läuft auch. Jedoch erhalten ich im Moment den Vormonat als Zahl.
Jetzt muss ich da ich den Vormonat nicht als Zahl sondern als Wort ausweisen möchte mit einer If Anfrage aus z.B. 12 Dezember machen. Hat da jemand eine Lösung den Vormonat direkt als Text auslesen zu können ?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
var  datum: TDateTime;
     vjahr, vmonat, vtag : word;
     jahr, monat, tag : word;

begin
datum := now;
DecodeDate(datum,jahr,monat,tag);
vMonat := Monat -1;
if vMonat < 1 then
    vMonat := 12;
vtag := tag -1;
if vTag < 1 then
    case vMonat of
      1357812: vTag := 31;
      46911: vTag := 30;
      2:
begin
        //Februar im Schaltjahr oder nicht?
          if IsLeapYear(Jahr) then
            vTag := 29
          else
            vTag := 28;
        end;
        end;

vjahr := jahr -1;

Edit1.Text :=(IntToStr(vMonat));


Moderiert von user profile iconChristian S.: Delphi-Tags hinzugefügt
Moderiert von user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Sa 16.12.2006 um 21:44
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Sa 16.12.06 21:49 
ausblenden Delphi-Quelltext
1:
2:
3:
  const LongMonthStr : array[1..12of string[9] = (
                   'Januar''Februar''März''April''Mai''Juni''Juli',
                   'August''September''Oktober''November''Dezember');


Aber Achtung ! Das ist noch keine verwendbare Variable !!

_________________
Gruß
Hansa
lemi4ever Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Sa 16.12.06 21:56 
user profile iconhansa hat folgendes geschrieben:
ausblenden Delphi-Quelltext
1:
2:
3:
  const LongMonthStr : array[1..12of string[9] = (
                   'Januar''Februar''März''April''Mai''Juni''Juli',
                   'August''September''Oktober''November''Dezember');


Aber Achtung ! Das ist noch keine verwendbare Variable !!



Dann gebe ich aber schon wieder die Namen der Monate in den Code ein. Mein Tool wir auf PC laufen wo das Betriebssystem Deutsch, Französisch, Italienisch oder English sein kann. Es wäre dann schön wenn die Vormonatnamen auch in der richtigen Sprachen anzeigt werden.

Gruss

Michael
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Sa 16.12.06 22:08 
Dann verwende $IFDEF und wenn die Wörter im Quelltext gar nicht auftauchen sollen, dann schreibe sie in eine DB/Datei.

_________________
Gruß
Hansa
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 16.12.06 22:36 
Hallo!

Delphi stellt mit GetLocaleStr eine Kapselung der Suche im MSDN GETLOCALEINFO-Funktion von Windows zur Verfügung. Die kann man z.B. so benutzen:

ausblenden Delphi-Quelltext
1:
2:
januarStr := GetLocaleStr(LOCALE_SYSTEM_DEFAULT, LOCALE_SMONTHNAME1, 'nicht gefunden');
februarStr := GetLocaleStr(LOCALE_SYSTEM_DEFAULT, LOCALE_SMONTHNAME2, 'nicht gefunden');

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Sa 16.12.06 23:43 
Hallo,

ist doch einfach:
ausblenden Delphi-Quelltext
1:
januarStr := LongMonthNames[1];					

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 17.12.06 00:11 
Ah, den kannte ich auch noch nicht, ist natürlich einfacher.

Wird aber auch über GetLocalStr gefüllt ;-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: So 17.12.06 01:05 
Hallo,

und GetLocalStr kenn ich, ... äh, Delphi 3 nicht, aber man kann ja GETLOCALEINFO direkt einsetzen.

@user profile iconlemi4ever

was hälst Du denn davon:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
function Vormonat(aDatum: TDateTime): String;
var J, M, T : word;
begin
  DecodeDate(aDatum,J,M,T);
  aDatum := EncodeDate(J,M,1);
  Result := FormatDateTime('MMMM',aDatum-1);
end;

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )