Mehrere Tage in TCalendar hervorheben

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
jwdietrich
Beiträge: 173
Registriert: Mo 20. Okt 2008, 20:50
OS, Lazarus, FPC: macOS 10.4-14.1, Windows 2000-11, Raspbian (L 3.7.0, FPC 3.2.2)
CPU-Target: PowerPC, Intel, ARM
Wohnort: Hattingen, NRW
Kontaktdaten:

Mehrere Tage in TCalendar hervorheben

Beitrag von jwdietrich »

Gibt es eine Möglichkeit in einer TCalendar-Komponente außer dem aktuellen Datum noch mehrere weitere Tage in bestimmten Farben zu markieren? Ich entwickle einen Kalender, in dem ich Feiertage hervorheben will. Das ist ja keine ungewöhnliche Aufgabe, so dass ich denke, dass es so etwas geben muss. Leider ist die Dokumentation sehr spärlich.


Benutzeravatar
jwdietrich
Beiträge: 173
Registriert: Mo 20. Okt 2008, 20:50
OS, Lazarus, FPC: macOS 10.4-14.1, Windows 2000-11, Raspbian (L 3.7.0, FPC 3.2.2)
CPU-Target: PowerPC, Intel, ARM
Wohnort: Hattingen, NRW
Kontaktdaten:

Re: Mehrere Tage in TCalendar hervorheben

Beitrag von jwdietrich »

Schön, aber in der LCL gibt es für TCalender die Eigenschaft BoldDays nicht. Brauche ich dafür noch eine Extra-Komponente?

wp_xyz
Beiträge: 5177
Registriert: Fr 8. Apr 2011, 09:01

Re: Mehrere Tage in TCalendar hervorheben

Beitrag von wp_xyz »

Nein. Schreibe einen Event-Handler für OnGetMonthInfo und rufe dort die Methode BoldDays auf, der du die fett darzustellenden Monate übergibst. Diese Methode codiert diese Monate in das Bit-Array MonthBoldInfo, das von dem Event-Handler benötigt wird. Der aktuelle Monat wird direkt als Parameter übergeben, das Jahr musst du dir aus dem aktuell eingestellten Datum (TMonthCalendar(Sender).Date) selbst ableiten, z.B. mit DecodeDate.

wp_xyz
Beiträge: 5177
Registriert: Fr 8. Apr 2011, 09:01

Re: Mehrere Tage in TCalendar hervorheben

Beitrag von wp_xyz »

Oh - ich merke gerade, bei Lazarus ist das ja anders als bei Delphi... Sorry.

Benutzeravatar
jwdietrich
Beiträge: 173
Registriert: Mo 20. Okt 2008, 20:50
OS, Lazarus, FPC: macOS 10.4-14.1, Windows 2000-11, Raspbian (L 3.7.0, FPC 3.2.2)
CPU-Target: PowerPC, Intel, ARM
Wohnort: Hattingen, NRW
Kontaktdaten:

Re: Mehrere Tage in TCalendar hervorheben

Beitrag von jwdietrich »

wp_xyz hat geschrieben:Oh - ich merke gerade, bei Lazarus ist das ja anders als bei Delphi... Sorry.
Naja, Lazarus ist ja auch kein Delphi-Klon. Trotzdem vielen Dank für die Bemühungen!

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Mehrere Tage in TCalendar hervorheben

Beitrag von Christian »

In Visual Planit gibts ne Kalendar Komponente die komplett selbstgezeichnet ist, da lässt sich das sicher unterbringen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Benutzeravatar
jwdietrich
Beiträge: 173
Registriert: Mo 20. Okt 2008, 20:50
OS, Lazarus, FPC: macOS 10.4-14.1, Windows 2000-11, Raspbian (L 3.7.0, FPC 3.2.2)
CPU-Target: PowerPC, Intel, ARM
Wohnort: Hattingen, NRW
Kontaktdaten:

Re: Mehrere Tage in TCalendar hervorheben

Beitrag von jwdietrich »

Christian hat geschrieben:In Visual Planit gibts ne Kalendar Komponente die komplett selbstgezeichnet ist, da lässt sich das sicher unterbringen.
Danke für den Tip, das sieht interessant, aber auch ein wenig unhandlich aus. Ich werde es mal ausprobieren, aber wenn die Komponente zu ressourcenintensiv ist, werde ich wohl eher selbst einen flexiblen Kalender schreiben.

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2822
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Mehrere Tage in TCalendar hervorheben

Beitrag von m.fuchs »

Wie muss denn die Hervorhebung aussehen? Ich habe da noch eine Komponente, mit der ein User eigentlich Tage in einem Jahr markieren kann. Aber man könnte sie durchaus auch nur für die Anzeige von markierten Tagen verwenden. Sieht dann so aus:

http://www.michael-fuchs.net/newsgroups ... ongrid.png
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

wp_xyz
Beiträge: 5177
Registriert: Fr 8. Apr 2011, 09:01

Re: Mehrere Tage in TCalendar hervorheben

Beitrag von wp_xyz »

Im Package RX (http://lazarus-ccr.svn.sourceforge.net/ ... onents/rx/) gibt es ein TRxCalendarGrid, das von TCustomDrawGrid abgeleitet ist. Hier hat man - wie bei allen Grids - über das Ereignis OnPrepareCanvas Zugriff auf den Canvas, bevor eine Grid-Zelle gezeichnet wird, und kann so die Textfarbe etc. ändern.

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: Mehrere Tage in TCalendar hervorheben

Beitrag von creed steiger »

Beim Orpheus Port ist auch ein Kalender dabei

http://wiki.freepascal.org/OrphPort

damit könnte es evtl gehen
http://www.lazarus.freepascal.org/index ... ic=18007.0

Benutzeravatar
jwdietrich
Beiträge: 173
Registriert: Mo 20. Okt 2008, 20:50
OS, Lazarus, FPC: macOS 10.4-14.1, Windows 2000-11, Raspbian (L 3.7.0, FPC 3.2.2)
CPU-Target: PowerPC, Intel, ARM
Wohnort: Hattingen, NRW
Kontaktdaten:

Re: Mehrere Tage in TCalendar hervorheben

Beitrag von jwdietrich »

Danke für die vielen Tips. Ich werde in den nächsten Tagen mal ein wenig experimentieren, welche der Optionen die beste ist.

Antworten