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);
BOOL RemoveSelColor(short Year, short Month, short Day); void RemoveAllSelections(); OLE_COLOR
GetDateColor(short Year, short Month, short Day); void SetDateColor(short
Year, short Month, short Day, OLE_COLOR Color); BOOL RemoveDateColor(short
Year, short Month, short Day); void
RemoveAllDateColors();
BOOL LoadCountryFile(LPCTSTR sFilename); |
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");
![]()