ActiveX: CalendX      (Filnamn: SLXCAL.OCX)

 

CalendX är en internationell kalender som visar en månad i taget. Kalendern kan hantera landspecifika helgdagar. Helgdagar visas med röd text, övriga dagar med svart text. Kalendern har inbyggd logik för att själv beräkna när vissa västerländska helgdagar inträffar, såsom exempelvis helgdagar runt påsk. Olika länder har olika helgdagar och för att hantera detta på ett enkelt sätt använder CalendX sig av landsanpasssade externa datafiler (sk landsfiler) där alla helgdagar för ett land är specificerade. Dessa landsfiler innehåller även namnen på månader och veckodagar och annan landsspecifik information. Det följer med landsfiler för Sverige, Norge, Danmark, Finland, Tyskland, Frankrike, Spanien, Italien, England och USA med du kan även enkelt skapa egna för ytterligare länder.

Man kan bläddra fram och tillbaka en månad i taget genom att klicka på knapparna "<" och ">". För att visa sidan med nuvarande år och månad dubbelklickar man på utrymmet mellan knapparna. Man väljer ett datum genom att klicka med vänster musknapp över datumet. Det valda datumet kommer att visas inramad. 

I CalendX kan du välja mellan att endast tillåta markering av ett datum i taget eller att tillåta markering av flera olika datum samtidigt. I det sistnämnda fallet kan du även välja färg för en markering. Du kan avmarkera ett datum genom att klicka över den med höger musknapp. Du kan även markera en hel vecka genom att klicka på veckonumret (eller till höger om dagarna ifall inga veckonummer används). Du kan också markera alla veckodagar med samma namn i en månad genom att klicka på veckodagsnamnet. Dubbelklickar du på en dag markeras hela månaden. En intern tabell håller reda på markeringarna och dess färger. Du kan markera upp till 2500 dagar. Förutom dessa markeringsmöjligheter kan du även ange egna färger för olika datum (dagnummer).
 
Med svensk landsfil inladdad Med italiensk landsfil inladdad Med amerikansk landsfil inladdad


Egenskaper

Namn Datatyp Beskrivning
AccessMode short Specificerar vilken typ av dagar som ska kunna markeras i kalendern. Egenskapen kan ha en av följande värden:

   0 - NoRestrictions   ( Inga restriktioner. Alla datum kan markeras. )
   1 - PreventSatHol    ( Endast vardagar kan markeras, ej lördagar och helgdagar. )
   2 - PreventHol         ( Endast vardagar och lördagar kan markeras, ej helgdagar. )
.
AllowDblClkSelection BOOL Bestämmer om man ska kunna markera en hel månad genom att dubbelklicka på en dag i månaden. TRUE medför att det är möjligt medan FALSE hindrar att det sker.
.
AllowMultiSelection BOOL Bestämmer om man ska kunna markera flera datum i kalendern eller ej. TRUE medför att man kan markera flera datum. FALSE medför att man endast kan markera ett datum i taget. Om flera datum ska markeras kan varje markering få en egen färg. Färgen för en markering sätts via egenskapen SelColor.
.
AllowSelection BOOL Bestämmer om man ska kunna välja datum med musen eller ej. TRUE medför att man kan välja datum. FALSE medför att man endast kan bläddra i kalendern och ingen markering kommer att synas.
.
BackColor Color Sätter ny bakgrundsfärg för kalendern. Standardfärgen är ljusgrå.
 .
CountryFilePath char* Returnerar sökväg till aktuell landsfil för kalendern, dvs en extern datafil som innehåller texter och information om helgdagar. Sökvägen till landsfilen specificeras via metoden LoadCountryFile. Mer information om landsfiler finns här.
 .
DateColorCount short Returnerar antal datum i kalendern som tilldelats en egen färg. Kan endast avläsas och är endast tillgänglig under körning.
.
HolidayTextColor Color Sätter ny textfärg för söndagar och helgdagar i kalendern. Standardfärgen är mörkröd.
 .
Month short Sätter eller läser aktiv månad i kalendern.
.
NameOfMonths char* Specifierar namnen på de 12 månader som visas i kalendern. Månadsnamnen ska anges med ett komma mellan varje namn. Standardvärdet för textsträngen är:
 
"January, February, March, April, May, June, July, August, September, October, November, December"
 .
NameOfWeekdays char* Specifierar namnen på de 7 veckodagsrubriker som visas i kalendern. Namnen ska anges med ett komma mellan varje namn. Lämpligtvis används de två första bokstäverna i varje veckodagsnamn eftersom fler bokstäver inte syns pga det begränsade utrymmet. Standardvärdet för textsträngen är:
 
"Mo, Tu, We, Th, Fr, Sa, Su"
 .
SelColor Color Anger eller returnerar markeringsfärg. Egenskapen AllowMultiSelection måste ha värdet TRUE för att denna egenskap ska kunna användas. SelColor ignoreras om AllowMultiSelection har värdet FALSE. Markeringsfärgen som specificeras via denna egenskap används när användaren klickar på ett datum med musen.
 .
SelCount short Returnerar antal markeringar i kalendern. Kan endast avläsas och är endast tillgänglig under körning. 
.
SelDay short Returnerar dagnummer för det datum som senast markerades.
.
SelMonth short Returnerar månadsnummer för det datum som senast markerades. 
.
SelWeekNr short Returnerar veckonummer för det datum som senast markerades.
.
SelYear short Returnerar årtal för det datum som senast markerades. 
.
ShowButtons BOOL Bestämmer om bläddringsknapparna "<" och ">" ska synas på kalendern eller inte. Har ShowButtons värdet FALSE kommer knapparna ej att visas och byte av månad med hjälp av musen är inte möjlig. Även möjligheten att dubbelklicka fram nuvarande månad är avstängd. Har ShowButtons värdet TRUE syns knapparna och användaren kan byta månad genom att klicka på knapparna. 
.
ShowHolidays BOOL Bestämmer om helgdagar (förutom söndagar) ska visas med röd textfärg i almanackan eller inte. Är värdet FALSE visas helgdagar med svart textfärg (precis som vardagar). Är värdet TRUE visas helgdagar med röd textfärg. 
.
ShowMultiSelectionsOnly BOOL Anger om flerfärgsmarkeringar endast ska visas men inte får ändras. Sätts denna egenskap till TRUE kan flerfärgsmarkeringar visas i kalendern men användaren kan inte markera några egna. 
.
ShowTips BOOL Anger om tipstext ska visas när användaren för muspekaren över en helgdag (röd dag) eller dagens datum. Är datumet en helgdag visas namnet på den dagen i en liten textruta. Befinner sig muspekaren över dagens datum visas dagens datum i tipsrutan. 
.
ShowWeekNumbers BOOL Anger om kalendern ska visas med veckonummer eller inte. Sätts denna egenskap till TRUE visas veckonummer, sätts egenskapen till FALSE visas inga veckonummer. 
.
SundayFirst BOOL Anger om den första veckodagen ska vara en Söndag eller en Måndag. Sätts denna egenskap till TRUE blir första veckodagen en Söndag. Sätts den till FALSE blir första veckodagen en Måndag.
.
Year short Sätter eller läser aktivt år i kalendern. 
.
Left, Top short Sätter X- resp. Y-position för kalendern.
.
Height, Width short Sätter höjd och bredd för kalendern.
.
Visible BOOL Anger om kalendern ska vara synlig eller osynlig.
.


Händelser

Namn Beskrivning
DateChanged Denna händelse aktiveras när användaren byter månad i kalendern. Egenskapen Month kan avläsas för att erhålla aktuell månad.
.
DateSelected Denna händelse aktiveras när användaren markerar ett eller flera datum i kalendern genom att klicka med musen.
.


Metoder 
 


OLE_COLOR GetSelColor(short Year, short Month, short Day);

Returnerar markeringsfärg vid datumet Year-Month-Day (år-månad-dag) i kalendern. 

void SetSelColor(short Year, short Month, short Day, OLE_COLOR Color);

Markerar datumet Year-Month-Day (år-månad-dag) i kalendern. Ifall egenskapen AllowMultiSelection är satt till TRUE specificerar Color den markeringsfärg som ska användas. Är AllowMultiSelection satt till FALSE ignoreras inparametern Color och det markerade datumet får en 3D-ram runt sig.

BOOL RemoveSelColor(short Year, short Month, short Day);

Avlägsnar markeringen vid datumet Year-Month-Day (år-månad-dag) i kalendern. Returnerar TRUE om allt gått bra eller FALSE vid fel.

void RemoveAllSelections(); 

Avlägsnar alla markeringar i kalendern.
 

OLE_COLOR GetDateColor(short Year, short Month, short Day);

Returnerar färg för datumet Year-Month-Day (år-månad-dag) i kalendern. Funktionen returnerar -1 ifall ingen färg finns specifierad vid angivet datum.

void SetDateColor(short Year, short Month, short Day, OLE_COLOR Color);

Sätter datumet Year-Month-Day (år-månad-dag) till färgen Color.

BOOL RemoveDateColor(short Year, short Month, short Day);

Avlägsnar färg för datumet Year-Month-Day (år-månad-dag) i kalendern. Funktionen returnerar TRUE om färgen avlägsnats eller FALSE om den inte kan avlägsnas (tex om ingen färg existerar vid specificerat datum). Efter att en färg avlägsnats sätts datumet till standardfärgen svart.

void RemoveAllDateColors(); 

Avlägsnar alla färglagda datum (dagar) i kalendern.
 

BOOL LoadCountryFile(LPCTSTR sFilename);

Laddar in en ny landsfil till kalendern. Parametern sFilename specificerar en sökväg till en landsfil. Efter en lyckad inläsning av en landsfil sätts egenskapen CountryFilePath till sökvägen till den nya landsfilen. Metoden returnerar TRUE om inläsningen gått bra eller FALSE vid fel.  Mer information om landsfiler finns här.
.


Exempel 1

Följande exempel markerar de tre första dagarna i Juli-2003 med röd färg. 

CalendX.SetAllowMultiSelection(TRUE);             // Tillåt flerfärgsmarkeringar
CalendX.SetSelColor(2003, 7, 1, RGB(255, 0, 0));  // Markera 2003-07-01
CalendX.SetSelColor(2003, 7, 2, RGB(255, 0, 0));  // Markera 2003-07-02
CalendX.SetSelColor(2003, 7, 3, RGB(255, 0, 0));  // Markera 2003-07-03

Exempel 2

Följande exempel sätter datumfärgen (färgen på dagnumret) för de två första dagarna i Augusti-2003 till blå. 

CalendX.SetDateColor(2003, 7, 1, RGB(0, 0, 255));  // Ändra färg för 2003-07-01
CalendX.SetDateColor(2003, 7, 2, RGB(0, 0, 255));  // Ändra färg för 2003-07-02


Exempel 3

Följande exempel läser in en tysk landsfil till kalendern. 

BOOL bSt;
bSt = CalendX.LoadCountryFile("C:\\CVL2004\\CountryFiles\\germany.cty");