![]() |
Eigener Kalender bauen
Hallo Leute,
ich möchte mir einn eigene Kalender Bauen. Diesen möchte ich für jedemn Tag individuell gestellen können.Das ganze läuft unter Intraweb und dort mit IWRegionen und Labels ab. Da ich jeden Tag extra gestallten möchte habe ich mir eine Case abfrage gebaut. Hiermal das Beispiel für den Monat 1 Tag 4 alseo der 04.01.2016. Habe ich eine Möglichkeit es zu vereinfachen ? Ansonsten müsste ich das ganze ja für jeden Tag anlegen. Also 356 mal.
Delphi-Quellcode:
14: begin
Jan4.Caption := Wochentag; if WochenTag = 'Sa' then begin Jan4.Font.Style := [fsBold]; Jan4Tag.Font.Style := [fsBold]; FeldJan4.Color := clWebBeige end; if WochenTag = 'So' then begin Jan4.Font.Style := [fsBold]; Jan4Tag.Font.Style := [fsBold]; FeldJan4.Color := clWebBISQUE end; if Feiertage.IstFeiertag(Datum) <> '' then begin Jan4.Font.Style := [fsBold]; Jan4Tag.Font.Style := [fsBold]; FeldJan4.Color := clWebBISQUE; Jan4.Font.Color := clRed; Jan4Tag.Font.Color := ClRed; Jan4Anzahl.Left := 50; Jan4Anzahl.Width := 55; Jan4Anzahl.Alignment := taLeftJustify; Jan4Anzahl.Font.Color := clRed; Jan4Anzahl.Font.Size := 7; Jan4Anzahl.Top := 1; Jan4Anzahl.Caption := Feiertage.IstFeiertag(Datum); end; if Feiertage.IstFerientag(Datum) = True then begin FeldJan4.Color := clyellow; end; end; Danke Tanja |
AW: Eigener Kabender bauen
Vllt mit einer Prozedur, die alles macht und als Parameter die Anzeigeobjekte bekommt...
Delphi-Quellcode:
procedure ProcessOneDay(ADate: TDate; const AWochenTag: string; var ADateLabel: TLabel; var ADayLabel: TLabel; var ACountLabel: TLabel; var AFeld: TPanel??);
begin ADayLabel.Caption := AWochentag; if (AWochenTag = 'Sa') or (AWochenTag = 'So') then begin ADateLabel.Font.Style := [fsBold]; ADayLabel.Font.Style := [fsBold]; AFeld.Color := clWebBISQUE end; if (EmptyStr <> Feiertage.IstFeiertag(ADate)) then begin ADateLabel.Font.Style := [fsBold]; ADayLabel.Font.Style := [fsBold]; AFeld.Color := clWebBISQUE; ADateLabel.Font.Color := clRed; ADayLabel.Font.Color := clRed; ACountLabel.Left := 50; ACountLabel.Width := 55; ACountLabel.Alignment := taLeftJustify; ACountLabel.Font.Color := clRed; ACountLabel.Font.Size := 7; ACountLabel.Top := 1; ACountLabel.Caption := Feiertage.IstFeiertag(Datum); end; if Feiertage.IstFerientag(ADate) then begin AFeld.Color := clYellow; end; end; ... ProcessOneDay(Datum, Wochentag, Jan4, Jan4Tag, Jan4Anzahl, FeldJan4); |
AW: Eigener Kabender bauen
Hat sich erledigt
|
AW: Eigener Kabender bauen
Zitat:
![]() |
AW: Eigener Kabender bauen
Zitat:
ConnorMcLeod hatte schon das geschrieben was ich auch schreiben wollte Gruß K-H |
AW: Eigener Kabender bauen
Zitat:
Deine Antwort passte eben nicht wirklich auf die Ausgangsfrage. Und da du gerade einen eigenen Fred aufgemacht hattest war es naheliegend, dass du dich verklickt hattest. :stupid: |
AW: Eigener Kalender bauen
Zitat:
Also alles was rechts der Zuweisung steht, aus einer Datei (oder sonstigem System) auslesen. Immer wenn ein neues Datum oder Jahrestag definiert ist, dann die neue Formatierung einsetzen, bis zu dem Tag, für den die nächste Formatierung definiert ist. |
AW: Eigener Kabender bauen
Hallo ConnorMcLeod,
danke dür den Code. Das bringt mich schon sehr viel weiter, bzw. vereinfacht das ganze schon einmal. Zitat:
Delphi-Quellcode:
Kann man den Code auch noch etwas vereinfach in Form z.B. einer Schleife ?
ProcessOneDay(Datum, Wochentag, Jan1, Jan1Tag, Jan1Anzahl, FeldJan1);
ProcessOneDay(Datum, Wochentag, Jan2, Jan2Tag, Jan2Anzahl, FeldJan1); ... ProcessOneDay(Datum, Wochentag, Dez30, Dez30Tag, DEZ30Anzahl, FeldDez30); ProcessOneDay(Datum, Wochentag, Dez31, Dez31Tag, DEZ31Anzahl, FeldDez31); Tanja |
AW: Eigener Kalender bauen
Naja, Datum ist 'ne Zahl, ginge also z. B. in 'ner For-Schleife:
Delphi-Quellcode:
procedure ProcessOneDay(ADate: TDate; var ADateLabel: TLabel; var ADayLabel: TLabel; var ACountLabel: TLabel; var AFeld: TPanel??);
begin Case DayOfWeek(ADate) of 1 : ADayLabel.Caption := 'Mo'; 2 : ADayLabel.Caption := 'Di'; 3 : ADayLabel.Caption := 'Mi'; 4 : ADayLabel.Caption := 'Do'; 5 : ADayLabel.Caption := 'Fr'; 6 : begin ADayLabel.Caption := 'Sa'; ADateLabel.Font.Style := [fsBold]; ADayLabel.Font.Style := [fsBold]; AFeld.Color := clWebBISQUE end; 7 : begin ADayLabel.Caption := 'So'; ADateLabel.Font.Style := [fsBold]; ADayLabel.Font.Style := [fsBold]; AFeld.Color := clWebBISQUE end; end; if (EmptyStr <> Feiertage.IstFeiertag(ADate)) then begin ADateLabel.Font.Style := [fsBold]; ADayLabel.Font.Style := [fsBold]; AFeld.Color := clWebBISQUE; ADateLabel.Font.Color := clRed; ADayLabel.Font.Color := clRed; ACountLabel.Left := 50; ACountLabel.Width := 55; ACountLabel.Alignment := taLeftJustify; ACountLabel.Font.Color := clRed; ACountLabel.Font.Size := 7; ACountLabel.Top := 1; ACountLabel.Caption := Feiertage.IstFeiertag(ADate); end; if Feiertage.IstFerientag(ADate) then begin AFeld.Color := clYellow; end; end; var i : Integer; begin For i := Trunc(StrToDate('01.01.2016')) to Trunc(StrToDate('31.12.2016')) do begin ProcessOneDay(i, DateLabel, DayLabel, CountLabel, Feld); end; end; |
AW: Eigener Kalender bauen
Zitat:
Das Problem liegt nicht beim Datum, sondern bei den Label. Ich habe ja für jeden Tag z.B. ein anders Label auf der Frorm liegen. Jan1Tag, Jan2Tag, Jan3Tag usw. ein StrToTLabel gibt es ja leider nicht denn sonst würde ich mir das String zusammenbauen und dann in ein TLabel umwandeln. Tanja |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 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