Entwickler-Ecke

Open Source Units - TDSCalendar Kalenderkomponente


AXMD - Do 28.04.05 19:05
Titel: TDSCalendar Kalenderkomponente
Morgen :)!

TDSCalendar

Ich möchte meine soeben fertiggestellte TDSCalendar-Komponente hier als Open Source vorstellen. Da ich meine Homepage zur Zeit umbaue ist die Datei angehängt. Die Komponente kann als Ersatz für den MonthCalendar, der bei Delphi dabei ist, verwendet werden - mit dem Unterschied, dass TDSCalendar einiges mehr an Funktionalität bietet.
Für Leute mit besonders wenig Zeit: dscal.zip herunterladen, entpacken, demo_exe.zip entpacken und demo.exe starten ;) Die Demo zeigt, was die Komponente alles kann. Alle anderen seien auf die Readme vertröstet. Hier der Inhalt der angehängten Datei:

- Komponentenquelltext und Package (für Delphi 7 und 2005, vgl. Readme)
- Demo mit Quelltext
- Referenz aller Eigenschaften, Ereignisse, Methoden, Typen und Konstanten (HTML)

Was ist an TDSCalendar so besonders?

- In der Komponente können Datumsbereiche markiert werden
- Fixe und dynamische Feiertage möglich (inklusive Berechnung einiger wichtiger Feiertage)
- Datumsspezifische Hints möglich
- Frei konfigurierbares Aussehen (Farben, Schriftart, etc.)

Die Lizenz findet ihr im Readme; falls es Fragen gibt, fragt ruhig ;). Feedback ist ebenfalls erwünscht.

Viel Spaß damit ;)
AXMD

PS.: Quelltext ist IMHO zu umfangreich, daher verweise ich auf die Datei dscal.pas im Anhang ;)

//EDIT: Neue Version und Bildpfad korrigiert
//EDIT2: Neue Version


AXMD - Sa 07.05.05 12:19

Eine neue Version ist da :D

Neu:

- Wochenauswahl
- Zusammenhängende Auswahl
- Diverse Bugfixes

Have fun
AXMD


F34r0fTh3D4rk - Sa 07.05.05 12:32

find ich richtig geil, nur beim markieren flackert die komponente etwas :shock:

liegt es daran?

Delphi-Quelltext
1:
2:
3:
4:
//{$DEFINE PREVENT_FLICKERING}
//Wenn aktiviert, wird die Message WM_ERASEBKGND abgefangen, um
//lästiges Flimmern und Flackern beim Markieren etc. zu verhindern.
//Nachteil: Darstellungsfehler an den Buttonrändern bei XP-Style

ansonsten hammer-geil ^^ 8)


AXMD - Sa 07.05.05 12:48

user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
find ich richtig geil, nur beim markieren flackert die komponente etwas :shock:

liegt es daran?

Delphi-Quelltext
1:
2:
3:
4:
//{$DEFINE PREVENT_FLICKERING}
//Wenn aktiviert, wird die Message WM_ERASEBKGND abgefangen, um
//lästiges Flimmern und Flackern beim Markieren etc. zu verhindern.
//Nachteil: Darstellungsfehler an den Buttonrändern bei XP-Style

ansonsten hammer-geil ^^ 8)


Danke :D. Ja, liegt daran, nur kommen da echt grausame Buttonfehler auf, wenn man unter Windows XP mit Luna arbeitet - dafür flackerts nicht mal auf einem 300 MHz-PC ;)

AXMD


F34r0fTh3D4rk - Sa 07.05.05 12:53

das ist ein problem, kriegst du das irgendwie hin ? weil es ist schwer sich zwischen XP-Design und Flackerfreiigkeit (<- das wort gibts net wirklich :D) entscheiden zu müssen. :?


AXMD - Sa 07.05.05 12:56

user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
das ist ein problem, kriegst du das irgendwie hin ? weil es ist schwer sich zwischen XP-Design und Flackerfreiigkeit (<- das wort gibts net wirklich :D) entscheiden zu müssen. :?


Ich arbeite dran

AXMD


BenBE - Sa 07.05.05 13:24

@AXMD: Meine Mail mit dem Fehler in der IDE bekommen?

@andere: Dirty-Fix des erwähnten Fehlers:

TDSCalendar.Paint:

Delphi-Quelltext
1:
2:
3:
  //Initialisierung
  CoordCount := 0;
  MondayCounter := 0;


Ersetzen durch:


Delphi-Quelltext
1:
2:
3:
4:
  //Initialisierung
  CoordCount := 0;
  MondayCounter := 0;
  WeekCounter := 0;


Dann sollte ein Bug behoben sein ...

MfG,
BenBE.


AXMD - Sa 07.05.05 13:30

user profile iconBenBE hat folgendes geschrieben:
@AXMD: Meine Mail mit dem Fehler in der IDE bekommen?

@andere: Dirty-Fix des erwähnten Fehlers:

TDSCalendar.Paint:

Delphi-Quelltext
1:
2:
3:
  //Initialisierung
  CoordCount := 0;
  MondayCounter := 0;


Ersetzen durch:


Delphi-Quelltext
1:
2:
3:
4:
  //Initialisierung
  CoordCount := 0;
  MondayCounter := 0;
  WeekCounter := 0;


Dann sollte ein Bug behoben sein ...

MfG,
BenBE.


Der is behoben; genau so hab ich's vorhin online gestellt (@andere: ist also im Anhang im ersten Post bereits gefixt ;)); die AV beim Beenden ist noch da

AXMD


AXMD - Sa 07.05.05 20:00

Das Flackern hab ich dank BenBE's Hilfe weggebracht (thx). Die AV beim Beenden ist leider noch immer da. Im Anhang mal ein Bild davon

AXMD


AXMD - Sa 28.01.06 11:23

Auch wenn das Topic hier schon etwas alt ist, möchte ich kurz etwas wichtiges bemerken: die AV beim Beenden ist ein Fehler der Delphi 2005 PE - und liegt daher nicht an der Komponente!

AXMD