AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eigener Kalender bauen

Ein Thema von Dumpfbacke · begonnen am 2. Sep 2016 · letzter Beitrag vom 6. Sep 2016
Antwort Antwort
Seite 1 von 2  1 2      
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
329 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Eigener Kalender bauen

  Alt 2. Sep 2016, 12:53
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 = 'Sathen begin Jan4.Font.Style := [fsBold]; Jan4Tag.Font.Style := [fsBold]; FeldJan4.Color := clWebBeige end;
            if WochenTag = 'Sothen 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
Tanja
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Eigener Kabender bauen

  Alt 2. Sep 2016, 13:20
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);
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Eigener Kabender bauen

  Alt 2. Sep 2016, 13:22
Hat sich erledigt
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Eigener Kabender bauen

  Alt 2. Sep 2016, 15:37
Hat sich erledigt
Ich glaube das bezog sich auf diesen Thread, oder?
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Eigener Kabender bauen

  Alt 2. Sep 2016, 15:57
Hat sich erledigt
Ich glaube das bezog sich auf diesen Thread, oder?
Nee leider nicht, da suche ich mir noch einen wolf....
ConnorMcLeod hatte schon das geschrieben was ich auch schreiben wollte

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.610 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Eigener Kabender bauen

  Alt 2. Sep 2016, 16:00
Nee leider nicht, da suche ich mir noch einen wolf....
ConnorMcLeod hatte schon das geschrieben was ich auch schreiben wollte
Achso. Sorry.

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.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: Eigener Kalender bauen

  Alt 3. Sep 2016, 10:04
ich möchte mir einn eigene Kalender Bauen. Diesen möchte ich für jedemn Tag individuell gestellen können.
Auch wenn Du mit dem Post hier wohl eher an eine Code Verbesserung gedacht hast (hast Du ja bereits bekommen). Ich würde die Formatierung irgendwoher laden, z.B. aus einer Textdatei.
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.
Gruß, Jo
  Mit Zitat antworten Zitat
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
329 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Eigener Kabender bauen

  Alt 3. Sep 2016, 13:27
Hallo ConnorMcLeod,
danke dür den Code. Das bringt mich schon sehr viel weiter, bzw. vereinfacht das ganze schon einmal.

Vllt mit einer Prozedur, die alles macht und als Parameter die Anzeigeobjekte bekommt...

  ProcessOneDay(Datum, Wochentag, Jan4, Jan4Tag, Jan4Anzahl, FeldJan4);
Jetzt habe ich nur nochein Problem. Ich müste nun beim erzeugen 365 mal die Aufruf starten also etwas so:

Delphi-Quellcode:
 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);
Kann man den Code auch noch etwas vereinfach in Form z.B. einer Schleife ?

Tanja
Tanja
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#9

AW: Eigener Kalender bauen

  Alt 3. Sep 2016, 13:49
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;
  Mit Zitat antworten Zitat
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
329 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: Eigener Kalender bauen

  Alt 3. Sep 2016, 14:07
Naja, Datum ist 'ne Zahl, ginge also z. B. in 'ner For-Schleife:
Delphi-Quellcode:
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;

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
Tanja

Geändert von Dumpfbacke ( 3. Sep 2016 um 14:26 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:24 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