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 |
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.
. |
Month |
Integer |
Sätter eller läser aktiv månad i
kalendern.
. |
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.
. |
ShowWeekNumbers |
Boolean |
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 |
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 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 (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.
CalendX1.AllowMultiSelection
= True ' Tillåt flerfärgsmarkeringar
CalendX1.SetSelColor 2009, 7, 1, RGB(255, 0, 0)
' Markera 2009-07-01
CalendX1.SetSelColor 2009, 7, 2, RGB(255, 0, 0)
' Markera 2009-07-02
CalendX1.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å.
CalendX1.SetDateColor 2009,
7, 1, RGB(0, 0, 255) ' Ändra färg för 2009-07-01
CalendX1.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 amerikansk landsfil till kalendern.
Dim bSt As Boolean
bSt = CalendX1.LoadCountryFile("C:\VBSL2012\CountryFiles\USA.cty")
|