ActiveX: CalendX12Mon      (Filnamn: SLX12MON.OCX)
 

  
CalendX12Mon är en internationell kalender som visar ett helt år i taget. Funktionaliteten i CalendX12Mon är annars ungefär som i CalendX. 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 CalendX12Mon 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 i kalendern helårsvis genom att klicka på knapparna "<" och ">". För att visa sidan med nuvarande år 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 CalendX12Mon 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 strax till vänster om den första dagen i en vecka. 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).
 
 
Klicka här för bilder på kalendern
  
Datatyperna nedan är angivna enligt VB 6.0 standard. I VB.NET ska Integer ersättas med Short (16 bitar) och Long ersättas med Integer (32 bitar).
 
 
Egenskaper
 
Namn Datatyp Beskrivning
AccessMode Integer 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 Boolean 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 Boolean 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 Boolean 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 String 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 Integer 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.
 .
NameOfMonths String 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 String 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 Integer Returnerar antal markeringar i kalendern. Kan endast avläsas och är endast tillgänglig under körning.
.
SelDay Integer Returnerar dagnummer för det datum som senast markerades.
.
SelMonth Integer Returnerar månadsnummer för det datum som senast markerades.
.
SelWeekNr Integer Returnerar veckonummer för det datum som senast markerades.
.
SelYear Integer Returnerar årtal för det datum som senast markerades.
.
ShowButtons Boolean 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 Boolean 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 Boolean 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 Boolean 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.
.
SundayFirst Boolean 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 Integer Sätter eller läser aktivt år i kalendern.
.
Left, Top Integer Sätter X- resp. Y-position för kalendern.
.
Height, Width Integer Sätter höjd och bredd för kalendern.
.
Visible Boolean Anger om kalendern ska vara synlig eller osynlig.
.
 
 
Händelser
 
Namn Beskrivning
DateChanged Denna händelse aktiveras när användaren byter år. Egenskapen Year kan avläsas för att erhålla aktuellt år.
.
DateSelected Denna händelse aktiveras när användaren markerar ett eller flera datum i kalendern genom att klicka med musen (vänster musknapp).
.
DateDeselected Denna händelse aktiveras när användaren avmarkerar ett eller flera datum i kalendern genom att klicka med musen (höger musknapp).
.
 
 
Metoder
 

GetSelColor (Year As Integer, Month As Integer, Day As Integer) As Long

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

SetSelColor (Year As Integer, Month As Integer, Day As Integer, Color  As Long)

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.

RemoveSelColor (Year As Integer, Month As Integer, Day As Integer) As Boolean

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.

RemoveAllSelections ()

Avlägsnar alla markeringar i kalendern.
 

GetDateColor (Year As Integer, Month As Integer, Day As Integer) As Long

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.

SetDateColor (Year As Integer, Month As Integer, Day As Integer, Color  As Long)

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

RemoveDateColor (Year As Integer, Month As Integer, Day As Integer) As Boolean

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.

RemoveAllDateColors ()

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

GetDateType (Year As Integer, Month As Integer, Day As Integer) As Integer

Returnerar fakta om datumet Year-Month-Day (år-månad-dag) i kalendern. Metoden informerar om det angivna datumet är en vardag, lördag, söndag eller en helgdag. Metoden returnerar en av följande värden:
 
   0 = Vardag
   1 = Lördag
   2 = Söndag
   3 = Helgdag (röd dag)
 

LoadCountryFile (sFilename As String) As Boolean

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.

.

Vid felaktiga datum
Metoderna
GetSelColor, GetDateColor och GetDateType returnerar -1 och metoderna RemoveSelColor och RemoveDateColor returnerar False om ett specificerat datum är ogiltigt. Övriga metoder utför ingen åtgärd och återvänder omedelbart om ett angivet datum är ogiltigt.


Exempel 1

Följande exempel markerar de tre första dagarna i juli 2009 med röd färg.

CalendX12Mon1.AllowMultiSelection = True       ' Tillåt flerfärgsmarkeringar
CalendX12Mon1.SetSelColor 2009, 7, 1, RGB(255, 0, 0)    ' Markera 2009-07-01
CalendX12Mon1.SetSelColor 2009, 7, 2, RGB(255, 0, 0)    ' Markera 2009-07-02
CalendX12Mon1.SetSelColor 2009, 7, 3, RGB(255, 0, 0)    ' Markera 2009-07-03


Exempel 2

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

CalendX12Mon1.SetDateColor 2009, 7, 1, RGB(0, 0, 255)  ' Ändra färg för 2009-07-01
CalendX12Mon1.SetDateColor 2009, 7, 2, RGB(0, 0, 255)  ' Ändra färg för 2009-07-02


Exempel 3

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

Dim bSt As Boolean
bSt = CalendX12Mon1.LoadCountryFile("C:\VBSL2012\CountryFiles\Norway.cty")

 
  

SamLogic