home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 March / Chip_2002-03_cd1.bin / zkuste / delphi / kolekce / d123456 / SIMONS.ZIP / Doc / SRCal.txt < prev    next >
Encoding:
Text File  |  2001-12-17  |  10.7 KB  |  232 lines

  1. TSRCalendar (C)opyright 2001 Version 1.40
  2. Autor : Simon Reinhardt
  3. eMail : reinhardt@picsoft.de
  4. Internet : http://www.picsoft.de
  5.  
  6.   Die Komponente TSRCalendar ist eine Weiterentwicklung der
  7.   TCalendar-Komponente aus den Beispielkomponenten der Delphi-VCL.
  8.   Sie enthΣlt viele Zusatzinformationen, wie Feiertage,
  9.   Sternzeichen und verschiedene astronomische Daten.
  10.  
  11.   Die Routinen aus der Unit TimeFunc stammen aus der TMoon-Komponente
  12.   von Andreas H÷rstemeier : http://www.westend.de/~hoerstemeier/index_d.htm
  13.   Andreas hat die Routinen aus dem Buch "Astronomical Algorithms" von Jean Meeus.
  14.  
  15.   Die GetWeekOfYear-Funktion, die die Wochennummer nach DIN 1355 ermittelt,
  16.   stammt von Christoph Kremer, Aachen.
  17.  
  18.   Vielen Dank auch an:
  19.   - Edmund Matzke <edmund_matzke@gmx.de> fⁿr die Korrektur der
  20.     Schleswig-Holsteinischen Feiertage,
  21.   - Matthias Frey <info@Matthias-Frey.de> fⁿr die Korrektur der
  22.     Advents-Berechnung.
  23.  
  24.   Diese Komponente ist Public Domain, das Urheberrecht liegt aber beim Autor.
  25.  
  26.  
  27. Dateiumfang:
  28. ------------
  29.  
  30. SRCal.txt     - Diese Datei
  31. SRCal.pas    - Quelltext der Komponente
  32. SRCal.d16    - Resourcendatei der 16Bit-Komponente fⁿr Delphi 1
  33. SRCal.d32    - Resourcendatei der 32Bit-Komponente fⁿr Delphi 2 bis 5
  34. TimeFunc.pas    - Quelltext der Unit mit Zeitroutinen
  35. MyMath.pas    - Mathematische Funktionen fⁿr Zeitberechnungen
  36. SRDefine.inc
  37. SRUtils.pas    - verschiedende Prozeduren und Funktionen fⁿr die Komponente
  38.                   (Eine Beschreibung findet man im Interface der Unit)  
  39.     
  40. Ordner    KalDemo        - TSRCalendar-Demo-Projekt fⁿr Delphi 2 bis 5
  41.     KalMain.dfm    - Formulardatei der MainForm
  42.     KalMain.pas    - Quelltext der MainForm-Unit
  43.     KalDemo.dof    - Compileroptionen des Demo-Projekts
  44.     KalDemo.dpr    - Quelltext des Demo-Projekts
  45.     KalDemo.res    - Resourcendatei des Demo-Projekts
  46.  
  47.  
  48. Installation:
  49. -------------
  50.  
  51. In Delphi 1:
  52. ------------
  53. 1. Alle Dateien in das Delphi-Komponenten-Verzeichnis entpacken.
  54. 2. Menⁿ Optionen : Komponente installieren
  55. 3. SchaltflΣche Hinzufⁿgen / Durchsuchen
  56. 4. Datei SRCal.pas im Delphi-Komponenten-Verzeichnis suchen und mit
  57.    OK bestΣtigen.
  58. 5. Die Komponente erscheint in der Komponenten-Gruppe "Simon"
  59.  
  60. In Delphi 2:
  61. ------------
  62. 1. Alle Dateien in das Delphi-Komponenten-Verzeichnis entpacken.
  63. 2. Menⁿ Komponente :  installieren
  64. 3. SchaltflΣche Hinzufⁿgen / Durchsuchen
  65. 4. Datei SRCal.pas im Delphi-Komponenten-Verzeichnis suchen und mit
  66.    OK bestΣtigen.
  67. 5. Die Komponente erscheint in der Komponenten-Gruppe "Simon"
  68.  
  69. Ab Delphi 3:
  70. ------------
  71. 1. Alle Dateien in das Delphi-Komponenten-Verzeichnis entpacken.
  72. 2. Menⁿ Komponente :  Komponente installieren
  73. 3. SchaltflΣche Durchsuchen (hinter dem Eingabefeld fⁿr den Unit-Namen)
  74. 4. Datei SRCal.pas im Delphi-Komponenten-Verzeichnis suchen und mit
  75.    OK bestΣtigen.
  76. 5. Die Rⁿckfrage nach dem Neukompilieren des Packages bestΣtigen.
  77. 6. Die Komponente erscheint in der Komponenten-Gruppe "Simon"
  78.    (Evtl. mu▀ eine bereits installierte, Σltere Version der Komponente
  79.     zuvor entfernt werden)
  80.  
  81.  
  82.  
  83. Die Komponente funktioniert genauso, wie die Delphi-Beispielkomponente TCalendar 
  84. mit folgenden Erweiterungen:
  85.  
  86. Neue Eigenschaften:
  87. -------------------
  88.  
  89. I. Published:
  90.  
  91. 1. "BackgroundColors" - Die Werte dieser Eigenschaften bestimmen die Hintergrundfarben fⁿr
  92.    die Kalenderzellen:
  93.      Headers: fⁿr Spaltenⁿberschriften
  94.      Holiday: fⁿr Feiertage.
  95.      Marked: fⁿr in der Eigenschaft "Marks" markierte Tage.
  96.      Selected: fⁿr das ausgewΣhlte Datum.
  97.      Standard: fⁿr normale Tage.
  98.      Today: fⁿr das aktuelle Systemdatum.
  99.      Weekend: fⁿr Sonntage.
  100.  
  101. 2. Die Eigenschaft "Bundesland" ist fⁿr die korrekte Berechnung der Feiertage und der 
  102.    astronomischen Daten auf das gewⁿnschte Bundesland zu setzen.
  103.  
  104. 3. In der Eigenschaft "CalendarOptions" werden verschiedene Einstellungen zusammengefasst:
  105.      coAstronomicalData: die astronomischen Daten (Mond- und Sonnendaten) werden bei einem 
  106.                          Datumswechsel berechnet. Ohne Berechnung der astronomischen Daten
  107.                          beschleunigt sich der Datumswechsel.
  108.      coAutoDeleteMarks: alle Markierungen in der Eigenschaft "Marks" werden bei einem Monats- 
  109.                         oder Jahreswechsel gel÷scht.
  110.      coCalcHolidays: Die deutschen Feiertage werden berechnet und angezeigt. Die Eienschaft
  111.                      Holiday enthΣlt dann den Namen des Feiertags.
  112.      coFrameSelection: Das ausgewΣhlte Datum wird mit einem Rahmen markiert.
  113.      coGridLines: Im Kalender werden Gitterlinien zwischen den Tagen gezeichnet.
  114.      coReadOnly: Der Kalender dient nur zur Anzeige und erlaubt keine Datumsauswahl.
  115.      coShowMarks: Die in der Eigenschaft "Marked" als markierte gespeicherten Tage werden 
  116.                   farbig angezeigt.
  117.      coUseCurrentDate: Der Kalender zeigt nach seiner Erstellung immer das aktuelle
  118.                        Systemdatum an.  
  119.  
  120. 4. "DrawStyle" kann folgende Werte annehmen:
  121.    - cdsColorGrid: Feiertage, Wochenenden, etc. werden in den Farben gezeichnet, die in den 
  122.      entsprechenden Eigenschaften festgelegt sind.
  123.    - cdsMonoGrid: Alle Tage im Kalender werden mit der in der Eigenschaft "Color" angegebenen 
  124.      Hintergrundfarbe und mit der Textfarbe der Eigenschaft "Font" gezeichnet. 
  125.    - cdsButtons: Die Tage im Kalender werden als anklickbare Buttons gezeichnet.
  126.  
  127. 5. "TextColors" - Die Werte dieser Eigenschaften bestimmen die Schriftfarben fⁿr
  128.    die Kalenderzellen:
  129.      Headers: fⁿr Spaltenⁿberschriften
  130.      Holiday: fⁿr Feiertage.
  131.      Marked: fⁿr in der Eigenschaft "Marks" markierte Tage.
  132.      Selected: fⁿr das ausgewΣhlte Datum.
  133.      Standard: fⁿr normale Tage.
  134.      Today: fⁿr das aktuelle Systemdatum.
  135.      Weekend: fⁿr Sonntage.
  136.  
  137. II. Public:
  138.  
  139. 1. "DayOfYear" gibt an, der wievielte Tag im Jahr das in der Eigenschaft "Date"
  140.    angegebene Datum ist.
  141. 2. Falls das in der Eigenschaft "Date" gespeicherte Datum ein Feiertag oder ein Sondertag ist, 
  142.    enthΣlt die Eigenschaft "Holiday" den Namen des Feier- oder Sondertages.
  143. 3. Falls das in der Eigenschaft "Date" gespeicherte Datum ein Feiertag oder ein Sondertag ist, 
  144.    enthΣlt die Eigenschaft "HolidayNr" die Nummer des Feier- oder Sondertages. Dieser Wert kann 
  145.    folgende Werte annehmen:
  146.     0 : Kein Feier- oder Sondertag
  147.    >0 : Feiertag
  148.    <0 : Sondertag
  149. 4. Die Eigenschaft "Holidays" ist ein array[0..31] of integer, in dem alle Feiertags- und 
  150.    Sondertagsnummern des aktuellen Monats gespeichert werden.
  151. 5. Die Eigenschaft "Marks" ist deklariert als "array[1..31] of boolean" und speichert 
  152.    markierte Tage.
  153. 6. "MoonDistance" gibt die Entfernung des Mondes zur Erde in Kilometern an.
  154. 7. "MoonPhase" gibt die Mondphase an und kann folgende Werte annehmen:
  155.    (Neumond, Zunehmend, Vollmond, Abnehmend)
  156. 8. "MoonRise" gibt die Uhrzeit des Mondaufganges im Format TDateTime an.
  157. 9. "MoonSet" gibt die Uhrzeit des Mondunterganges im Format TDateTime an.
  158. 10."MoonTransit" gibt die Uhrzeit des Mondh÷chststandes im Format TDateTime an.
  159. 11."SunDistance" gibt die Entfernung der Sonne zur Erde in Kilometern an.
  160. 12. "SunRise" gibt die Uhrzeit des Sonnenaufganges im Format TDateTime an.
  161. 13."SunSet" gibt die Uhrzeit des Sonnenunterganges im Format TDateTime an.
  162. 14."SunTransit" gibt die Uhrzeit des Sonnenh÷chststandes im Format TDateTime an.
  163. 15."Sternzeichen" gibt den Namen des Sternzeichens eines am in der Eigenschaft "Date"
  164.    angegebenen Datum geborenen an.
  165. 16."SternzeichenNr" gibt die Nummer des Sternzeichens eines am in der Eigenschaft "Date"
  166.    angegebenen Datum geborenen an:
  167.    0  : Wassermann
  168.    ..
  169.    11 : Steinbock
  170. 17."WeekOfYear" gibt an, in der wievielten Woche im Jahr (nach DIN 1355) das in der Eigenschaft 
  171.    "Date" angegebene Datum ist.
  172. 18.Die Eigenschaft CalendarDate wurde umbenannt in "Date". Diese Eigenschaft speichert
  173.    das Datum im Format TDateTime.
  174.  
  175.  
  176. Ereignisse:
  177. -----------
  178.  
  179. 1. "OnBeforeChange" tritt vor der ─nderung der Eigenschaft "Date" auf.
  180. 2. Das Ereignis "OnMonthChange" tritt bei einem Wechsel des Monats oder des Jahres auf, die
  181.    in den Eigenschaften "Month" und "Year" bzw. "Date" gespeichert sind.
  182. 3. OnMouseDown - wie bei TPanel
  183. 4. OnMouseMove - wie bei TPanel
  184. 5.OnMouseUp - wie bei TPanel
  185. 6. Das Ereignis "OnYearChange" tritt bei einem Wechsel des Jahres auf, das in den 
  186.    Eigenschaften "Year" bzw. "Date" gespeichert ist.
  187.  
  188.  
  189. Methoden:
  190. ---------
  191.  
  192. 1. DaysThisMonth gibt die Anzahl der Tage im Monat zurⁿck, der in der Eigenschaft "Month"
  193.    gespeichert ist.
  194. 2. GetHoliday ermittelt, ob das in "WhatDate" ⁿbergebene Datum im der Varaibalen "Land" ⁿber-
  195.    gebenen Bundesland ein Feier- oder Sondertag ist und gibt als Ergebnis dessen Nummer oder 
  196.    null zurⁿck:
  197.    function GetHoliday(WhatDate:TDateTime;Land:integer):integer;
  198. 2. Mit der Methode "MouseToCell"  ermittelt man die Spalte und Zeile des Kalenders, ⁿber der
  199.    der Mauszeiger steht:
  200.    procedure MouseToCell(X, Y: Integer; ACol, ARow: longint);
  201. 3. Mit der Methode "MouseToDate"  ermittelt man das Datum der Kalenderzelle, ⁿber der
  202.    der Mauszeiger steht:
  203.    function MouseToDate(X, Y: Integer):TDateTime;
  204. 4. NextMonth setzt das Kalenderdatum auf den gleichen Tag im folgenden Monat.
  205. 5. NextYear setzt das Kalenderdatum auf den gleichen Tag und den gleichen Monat im folgenden 
  206.    Jahr.
  207. 6. PrevMonth setzt das Kalenderdatum auf den gleichen Tag im vorhergehenden Monat.
  208. 7. PrevYear setzt das Kalenderdatum auf den gleichen Tag und den gleichen Monat im 
  209.    vorhergehenden Jahr.
  210.  
  211.  
  212. Neue Funktionen:
  213. ----------------
  214.  
  215. 1. Die Navigation durch den Kalender per Tastatur wurde verbessert: 
  216.    -Falls die letzte Zelle einer Zeile gewΣhlt ist und die [Pfeil-nach-rechts]-Taste 
  217.     gedrⁿckt wird, wird der folgende Tag in der ersten Spalte der nΣchsten Zeile markiert.
  218.    -Falls die erste Zelle einer Zeile gewΣhlt ist und die [Pfeil-nach-links]-Taste 
  219.     gedrⁿckt wird, wird der vorherige Tag in der letzten Spalte der vorherigen Zeile markiert.
  220.    -Falls der letzte Tag im Monat gewΣhlt ist und die [Pfeil-nach-rechts]-Taste 
  221.     gedrⁿckt wird, wird das Datum auf den ersten Tag des folgenden Monats gesetzt.
  222.    -Falls der erste Tag im Monat gewΣhlt ist und die [Pfeil-nach-links]-Taste 
  223.     gedrⁿckt wird, wird das Datum auf den letzten Tag des vorherigen Monats gesetzt.
  224.    -Falls ein Tag in der letzten Zeile des Kalenders gewΣhlt ist und die [Pfeil-nach-unten]-Taste 
  225.     gedrⁿckt wird, wird das Datum auf den ersten Tag des folgenden Monats gesetzt.
  226.    -Falls ein Tag in der ersten Zeile des Kalenders gewΣhlt ist und die [Pfeil-nach-oben]-Taste 
  227.     gedrⁿckt wird, wird das Datum auf den letzten Tag des vorherigen Monats gesetzt.
  228.  
  229. Alle anderen Eigenschaften und Ereignisse entsprechen denen der TCalendar-Komponente
  230. und sind in der Online-Hilfe nachzulesen. Die Funktion der Komponente lΣ▀t sich au▀erdem
  231. im beigefⁿgten Demo-Programm im Ordner "KalDemo" sehen.
  232.