Sign in Join
Wiki copytemporary

CalLite: Usage/fi: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-[![CalLite](/wiki-images/5/59/callite.png)](</File:callite.png> "CalLite")
2-
3-## Contents
4-
5- * 1 Käyttö
6- * 1.1 Värien vaihtaminen
7- * 1.2 Kalenterin erilaisten asetusten (Options) käyttö
8- * 1.3 Kielen vaihtaminen
9- * 1.4 Tapahtumat
10- * 1.5 Lomapäivien määrittäminen
11- * 1.5.1 Lomapäivien näyttö vihjeenä
12- * 1.5.2 Lomapäivien nimet kalenteriristikkoon
13- * 1.5.3 Lomapäivät ponnahdusvalikossa
14- * 1.6 Kuvakkeet tietyille päiville
15- * 1.7 Monivalinta
1+![](/wiki-images/9/90/Callite.png)
162
173# Käyttö
184
19-Yksinkertaisesti pudota [[CalLite/fi|TCalendarLite]]-komponentti lomakkeelle ja näin saadaan toiminnallinen kuukausikalenteri.
5+Yksinkertaisesti pudota [[CalLite/fi|TCalendarLite]]-komponentti lomakkeelle ja näin saadaan toiminnallinen kuukausikalenteri.
206
217## Värien vaihtaminen
228
23-Kalenterin ominaisuus `Colors` Kerää kaikki asetukset, jotka vaikuttavat eri kohteisiin käytettäviin väreihin:
9+Kalenterin ominaisuus `Colors` Kerää kaikki asetukset, jotka vaikuttavat eri kohteisiin käytettäviin väreihin:
2410
25- * **ArrowBorderColor** : Kalenterin yläpuolella olevien nuolten reunan väri (oletus: clSilver)
26- * **ArrowColor** : Kalenterin yläpuolella olevien nuolien täyttöväri (oletus: clSilver)
27- * **BackgroundColor** : Koko kalenterin taustaväri (oletus: clWhite)
28- * **BorderColor** : Valinnaisen reunuksen väri kalenterin ympärillä (oletus: clSilver). Lisäämällä kalentarin `Options` ominaisuuden `coShowBorder` arvo true:ksi niin näytetään reunus.
29- * **DayLineColor** : Valinnaisen erotuslinjan väri ylimmän navigointiruudun ja kalenterin päiväalueen välillä (oletus: clSilver). Lisää kalenterin `Options` kohdasta `coDayLine` päälle jos halutaan näyttää tämä rivi
30- * **HolidayColor** : Tekstin väri, jota käytetään lomapäivien esittämiseen (oletus: clRed). Lisää tapahtumakäsittelijä kohteeseen `OnGetHolidays` määrittelemään, mitkä päivät ovat lomapäiviä.
31- * **PastMonthColor** : Tekstin väri, jolla näytetään edellisen tai seuraavan kuukauden päivät (oletus: clSilver).
32- * **SelectedDateColor** : Valitun päivän täyttöväri (oletus: clMoneyGreen)
33- * **TextColor** : Tavallisien kalenteripäivien tekstin väri (oletus: clBlack)
34- * **TodayFrameColor** : Väri, jota käytetään suorakulman viivan värinä tämän päivän päivämäärän ympärille (oletus: clLime)
35- * **TopRowColor** : Yläriville käytettävä taustaväri (oletus: clHighlight)
36- * **TopRowTextColor** : Tekstin väri, jota käytetään ylärivillä (oletus: clHighlightText)
37- * **WeekendColor** : Tekstin väri, jota käytetään esittämään viikonlopun päiviä (default: clRed)
11+- **ArrowBorderColor**: Kalenterin yläpuolella olevien nuolten reunan väri (oletus: clSilver)
12+- **ArrowColor**: Kalenterin yläpuolella olevien nuolien täyttöväri (oletus: clSilver)
13+- **BackgroundColor**: Koko kalenterin taustaväri (oletus: clWhite)
14+- **BorderColor**: Valinnaisen reunuksen väri kalenterin ympärillä (oletus: clSilver). Lisäämällä kalentarin `Options` ominaisuuden `coShowBorder` arvo true:ksi niin näytetään reunus.
15+- **DayLineColor**: Valinnaisen erotuslinjan väri ylimmän navigointiruudun ja kalenterin päiväalueen välillä (oletus: clSilver). Lisää kalenterin `Options` kohdasta `coDayLine` päälle jos halutaan näyttää tämä rivi
16+- **HolidayColor**: Tekstin väri, jota käytetään lomapäivien esittämiseen (oletus: clRed). Lisää tapahtumakäsittelijä kohteeseen `OnGetHolidays` määrittelemään, mitkä päivät ovat lomapäiviä.
17+- **PastMonthColor**: Tekstin väri, jolla näytetään edellisen tai seuraavan kuukauden päivät (oletus: clSilver).
18+- **SelectedDateColor**: Valitun päivän täyttöväri (oletus: clMoneyGreen)
19+- **TextColor**: Tavallisien kalenteripäivien tekstin väri (oletus: clBlack)
20+- **TodayFrameColor**: Väri, jota käytetään suorakulman viivan värinä tämän päivän päivämäärän ympärille (oletus: clLime)
21+- **TopRowColor**: Yläriville käytettävä taustaväri (oletus: clHighlight)
22+- **TopRowTextColor**: Tekstin väri, jota käytetään ylärivillä (oletus: clHighlightText)
23+- **WeekendColor**: Tekstin väri, jota käytetään esittämään viikonlopun päiviä (default: clRed)
3824
3925## Kalenterin erilaisten asetusten (Options) käyttö
4026
41-Kalenterin näyttöä voidaan muuttaa muuttamalla kalenterin erilaisia asetuksia (Options):
42-```
27+Kalenterin näyttöä voidaan muuttaa muuttamalla kalenterin erilaisia asetuksia (Options):
28+
29+``` pascal
4330type
44- TCalOption = (coBoldDayNames, coBoldHolidays, coBoldToday, coBoldTopRow,
45- coBoldWeekend, coDayLine, coShowBorder, coShowHolidays,
46- coShowTodayFrame, coShowTodayName, coShowTodayRow,
47- coShowWeekend, coUseTopRowColors);
31+ TCalOption = (coBoldDayNames, coBoldHolidays, coBoldToday, coBoldTopRow,
32+ coBoldWeekend, coDayLine, coShowBorder, coShowHolidays,
33+ coShowTodayFrame, coShowTodayName, coShowTodayRow,
34+ coShowWeekend, coUseTopRowColors);
4835```
4936
50- * **coBoldDayNames** : Päivien nimet näytetään käyttäen niiden nimissä lihavoituja (bold) kirjaimia
51- * **coBoldHolidays** : Lomapäivät näytetään käyttäen lihavoituja (bold) kirjaimia. Lomapäiviä ei normaalisti näytetä, mutta lisäämällä tapahtumakäsittelijä `OnGetHolidays` voidaan määritellä lomapäivät.
52- * **coBoldToday** : Tämän päivän päivämäärän näytetään käyttäen lihavoituja (bold) kirjaimia
53- * **coBoldTopRow** : Kuukauden nimi ja vuosi näytetään käyttäen lihavoituja (bold) kirjaimia
54- * **coBoldWeekend** : Viikonlopun päivät näytetään käyttäen lihavoituja (bold) kirjaimia
55- * **coDayLine** : Lisätään erotuslinja ylimmän navigointiruudun ja kalenterin päiväalueen välille
56- * **coShowBorder** : Näytetään suorakulmainen kehys kalenterin ympärillä
57- * **coShowHolidays** : Aktivoi korostamaan lomapäivät. Huomaa että täytyy olla myös ohjelmoitu tapahtumankäsittelijä `OnGetHolidays` joka määrittää lomapäivät.
58- * **coShowTodayFrame** : Näytetään suorakulmainen kehys tämän päivän päivämäärän ympärillä
59- * **coShowTodayName** : Lisää päivän nimen riville, joka näyttää tämän päivän päivämäärän (katso myös: `coShowTodayRow`)
60- * **coShowTodayRow** : Näyttää kalenterin alareunassa olevan rivin joka näyttää tämän päivän päivämäärän (katso myös: `coShowTodayName`).
61- * **coShowWeekend** : Korostaa viikonlopun päivät (katso myös: `Colors.WeekendColor`).
62- * **coUseTopRowColors** : Maalaa yläreunan rivin taustat ja tekstit väreillä `Colors.TopRowColor` ja `Colors.TopRowTextColor`
37+- **coBoldDayNames**: Päivien nimet näytetään käyttäen niiden nimissä lihavoituja (bold) kirjaimia
38+- **coBoldHolidays**: Lomapäivät näytetään käyttäen lihavoituja (bold) kirjaimia. Lomapäiviä ei normaalisti näytetä, mutta lisäämällä tapahtumakäsittelijä `OnGetHolidays` voidaan määritellä lomapäivät.
39+- **coBoldToday**: Tämän päivän päivämäärän näytetään käyttäen lihavoituja (bold) kirjaimia
40+- **coBoldTopRow**: Kuukauden nimi ja vuosi näytetään käyttäen lihavoituja (bold) kirjaimia
41+- **coBoldWeekend**: Viikonlopun päivät näytetään käyttäen lihavoituja (bold) kirjaimia
42+- **coDayLine**: Lisätään erotuslinja ylimmän navigointiruudun ja kalenterin päiväalueen välille
43+- **coShowBorder**: Näytetään suorakulmainen kehys kalenterin ympärillä
44+- **coShowHolidays**: Aktivoi korostamaan lomapäivät. Huomaa että täytyy olla myös ohjelmoitu tapahtumankäsittelijä `OnGetHolidays` joka määrittää lomapäivät.
45+- **coShowTodayFrame**: Näytetään suorakulmainen kehys tämän päivän päivämäärän ympärillä
46+- **coShowTodayName**: Lisää päivän nimen riville, joka näyttää tämän päivän päivämäärän (katso myös: `coShowTodayRow`)
47+- **coShowTodayRow**: Näyttää kalenterin alareunassa olevan rivin joka näyttää tämän päivän päivämäärän (katso myös: `coShowTodayName`).
48+- **coShowWeekend**: Korostaa viikonlopun päivät (katso myös: `Colors.WeekendColor`).
49+- **coUseTopRowColors**: Maalaa yläreunan rivin taustat ja tekstit väreillä `Colors.TopRowColor` ja `Colors.TopRowTextColor`
6350
6451## Kielen vaihtaminen
6552
66-Komponentin käyttämät merkkijonot voidaan helposti muuntaa eri kielille muuttamalla ominaisuuden `Languages` arvoa:
67-```
53+Komponentin käyttämät merkkijonot voidaan helposti muuntaa eri kielille muuttamalla ominaisuuden `Languages` arvoa:
54+
55+``` pascal
6856type
69- TLanguage = (lgEnglish, lgFrench, lgGerman, lgHebrew, lgSpanish, lgItalian,
70- lgPolish, lgFinnish);
57+ TLanguage = (lgEnglish, lgFrench, lgGerman, lgHebrew, lgSpanish, lgItalian,
58+ lgPolish, lgFinnish);
7159```
7260
7361## Tapahtumat
7462
75-Tavallisten tapahtumien lisäksi TCalendarLite käynnistää seuraavat tapahtumat. Jotkin tapahtumat saavat sillä hetkellä valittujen solujen vuosi, kuukausi ja päivämäärät parametriksi. Joukko tilalippuja ilmoittaa, onko tämä päivä valittu vai kuuluuko edelliseen tai seuraavaan kuukauteen:
76-```
63+Tavallisten tapahtumien lisäksi TCalendarLite käynnistää seuraavat tapahtumat. Jotkin tapahtumat saavat sillä hetkellä valittujen solujen vuosi, kuukausi ja päivämäärät parametriksi. Joukko tilalippuja ilmoittaa, onko tämä päivä valittu vai kuuluuko edelliseen tai seuraavaan kuukauteen:
64+
65+``` pascal
7766type
78- TCalCellState = (csSelectedDay, csToday, csOtherMonth);
79- TCalCellStates = set of TCalCellState;
67+ TCalCellState = (csSelectedDay, csToday, csOtherMonth);
68+ TCalCellStates = set of TCalCellState;
8069```
8170
82- * **OnDateChange** : Käynnistyy kun kalenterissa valitaan toinen päivämäärä.
83- * **OnDrawCell** : Tällä voidaan ohittaa vakio päivän solun maalausprosessi kokonaan tai osittain. Jos Boolean parametri `AContinueDrawing` on asetettu oikeaksi, normaali maalausprosessi jatkuu tästä tapahtumasta poistuttaessa; jos se on false niin jätetään oletusprosessi tekemättä kyseiselle päivälle. Tapahtumaa voidaan käyttää esimerkiksi lisäämään syntymäpäivä- tai lomakuvakkeita päiväkohtaisiin soluihin.
84- * **OnGetDayText** : Voidaan käyttää muokataksesi tekstinäyttöä määritetylle päivälle. Oletus on merkkijono, joka näyttää päiväarvon. Tämän tapahtuman avulla lomien nimet voidaan lisätä esimerkiksi kalenteriin.
85- * **OnGetHolidays** : Määrittää, mitkä päivät kuluvan kuukauden aikana ovat vapaapäiviä. Juhlapäivien päivämäärät koodataan asetetuiksi biteiksi 32-bittisessä kokonaisluvussa.
86- * **OnHint** : Määrittää vihjeen, joka voidaan näyttää ponnahdusikkunassa kyseisenä päivänä. Voidaan hyödyntää esimerkiksi näyttää lomapäivien nimi, jos hiiri "lepää" lomapäivän kohdalla.
87- * **OnMonthChange** : Käynnistyy aina kun uusi kuukausi näkyy kalenterissa. Voidaan käyttää tehokkaampaan lomapäivien laskentaan.
88- * **OnPrepareCanvas** : Tapahtuu välittömästi ennen kuin solu on maalataan. Voidaan käyttää esimerkiksi Brush- ja Pen-ominaisuuksien ohittamiseen erilaisten taustojen tekemiseksi nimeämisiin ja tärkeisiin tapahtumiin.
71+- **OnDateChange**: Käynnistyy kun kalenterissa valitaan toinen päivämäärä.
72+- **OnDrawCell**: Tällä voidaan ohittaa vakio päivän solun maalausprosessi kokonaan tai osittain. Jos Boolean parametri `AContinueDrawing` on asetettu oikeaksi, normaali maalausprosessi jatkuu tästä tapahtumasta poistuttaessa; jos se on false niin jätetään oletusprosessi tekemättä kyseiselle päivälle. Tapahtumaa voidaan käyttää esimerkiksi lisäämään syntymäpäivä- tai lomakuvakkeita päiväkohtaisiin soluihin.
73+- **OnGetDayText**: Voidaan käyttää muokataksesi tekstinäyttöä määritetylle päivälle. Oletus on merkkijono, joka näyttää päiväarvon. Tämän tapahtuman avulla lomien nimet voidaan lisätä esimerkiksi kalenteriin.
74+- **OnGetHolidays**: Määrittää, mitkä päivät kuluvan kuukauden aikana ovat vapaapäiviä. Juhlapäivien päivämäärät koodataan asetetuiksi biteiksi 32-bittisessä kokonaisluvussa.
75+- **OnHint**: Määrittää vihjeen, joka voidaan näyttää ponnahdusikkunassa kyseisenä päivänä. Voidaan hyödyntää esimerkiksi näyttää lomapäivien nimi, jos hiiri "lepää" lomapäivän kohdalla.
76+- **OnMonthChange**: Käynnistyy aina kun uusi kuukausi näkyy kalenterissa. Voidaan käyttää tehokkaampaan lomapäivien laskentaan.
77+- **OnPrepareCanvas**: Tapahtuu välittömästi ennen kuin solu on maalataan. Voidaan käyttää esimerkiksi Brush- ja Pen-ominaisuuksien ohittamiseen erilaisten taustojen tekemiseksi nimeämisiin ja tärkeisiin tapahtumiin.
8978
9079## Lomapäivien määrittäminen
9180
92-Kalenteri ei "tiedä" mitään lomapäivistä. Joten täytyy kirjoittaa tapahtumakäsittelijä määrittelemään, mitkä päivät ovat kuluvan kuukauden aikana lomapäiviä. Kuluvan kuukauden kuukausi ja vuosi-arvot välitetään parametreina. Tiedot siitä, että päivä on lomapäivä tai ei, on koodattu bittijoukoksi 32-bittisessä kokonaisluvussa. Käännösyksikkö _callite_ yksinkertaistaa tätä tarjoamalla seuraavat yleisluonteiset aliohjelmat:
81+Kalenteri ei "tiedä" mitään lomapäivistä. Joten täytyy kirjoittaa tapahtumakäsittelijä määrittelemään, mitkä päivät ovat kuluvan kuukauden aikana lomapäiviä. Kuluvan kuukauden kuukausi ja vuosi-arvot välitetään parametreina. Tiedot siitä, että päivä on lomapäivä tai ei, on koodattu bittijoukoksi 32-bittisessä kokonaisluvussa. Käännösyksikkö *callite* yksinkertaistaa tätä tarjoamalla seuraavat yleisluonteiset aliohjelmat:
9382
94- * procedure **AddHoliday**(ADay: Integer; var AHolidays: THolidays): Lisää määritetyn päivän holiday bitti listaan parameterissä `AHolidays`.
95- * function **IsHoliday**(ADay: Integer; AHolidays: THolidays): Boolean: Tarkistaa onko kyseinen päivä listattu parametrissä `AHolidays`
96- * **ClearHolidays**(var AHolidays: THolidays): Tyhjentää holiday listan
83+- procedure **AddHoliday**(ADay: Integer; var AHolidays: THolidays): Lisää määritetyn päivän holiday bitti listaan parameterissä `AHolidays`.
84+- function **IsHoliday**(ADay: Integer; AHolidays: THolidays): Boolean: Tarkistaa onko kyseinen päivä listattu parametrissä `AHolidays`
85+- **ClearHolidays**(var AHolidays: THolidays): Tyhjentää holiday listan
9786
98-Tässä on yksinkertainen esimerkki uudenvuoden, joulun, pääsiäisen ja whit sunnuntain lomapäivien määrittelemisestä:
99-```
87+Tässä on yksinkertainen esimerkki uudenvuoden, joulun, pääsiäisen ja whit sunnuntain lomapäivien määrittelemisestä:
88+
89+``` pascal
10090function Easter(year:integer): TDateTime;
101- var
102- Day, Month : integer;
103- a,b,c,d,e,m,n : integer;
104- begin
105- case Year div 100 of
106- 17 : begin m := 23; n := 3; end;
107- 18 : begin m := 23; n := 4; end;
108- 19,20 : begin m := 24; n := 5; end;
109- 21 : begin m := 24; n := 6; end;
110- else raise Exception.Create('Only years after 1700 supported.');
111- end;
112- a := Year mod 19;
113- b := Year mod 4;
114- c := Year mod 7;
115- d := (19*a + m) mod 30;
116- e := (2*b + 4*c + 6*d + n) mod 7;
117- day := 22 + d + e;
118- Month := 3;
119- if Day>31 then begin
120- Day := d + e - 9;
121- Month := 4;
122- if (d=28) and (e=6) and (a>10) then begin
123- if day=26 then day := 19;
124- if day=25 then day := 18;
125- end;
126- end;
127- result := EncodeDate(year, month, day);
91+var
92+ Day, Month : integer;
93+ a,b,c,d,e,m,n : integer;
94+begin
95+ case Year div 100 of
96+ 17 : begin m := 23; n := 3; end;
97+ 18 : begin m := 23; n := 4; end;
98+ 19,20 : begin m := 24; n := 5; end;
99+ 21 : begin m := 24; n := 6; end;
100+ else raise Exception.Create('Only years after 1700 supported.');
101+ end;
102+ a := Year mod 19;
103+ b := Year mod 4;
104+ c := Year mod 7;
105+ d := (19*a + m) mod 30;
106+ e := (2*b + 4*c + 6*d + n) mod 7;
107+ day := 22 + d + e;
108+ Month := 3;
109+ if Day>31 then begin
110+ Day := d + e - 9;
111+ Month := 4;
112+ if (d=28) and (e=6) and (a>10) then begin
113+ if day=26 then day := 19;
114+ if day=25 then day := 18;
128115 end;
129-
130- procedure TForm1.CalendarLite1GetHolidays(Sender: TObject; AMonth, AYear: Integer;
131- var Holidays: THolidays);
132- var
133- d, m, y: Word;
134- e: TDate;
135- begin
136- ClearHolidays(Holidays);
137- if not FNoHolidays then
138- begin
139- // Fixed holidays
140- case AMonth of
141- 1: AddHoliday(1, Holidays); // Uusi vuosi
142- 12: AddHoliday(25, Holidays); // Joulupäivä
143- end;
144- // Pääsiäinen
145- e := Easter(AYear);
146- DecodeDate(e, y,m,d);
147- if m = AMonth then
148- AddHoliday(d, Holidays);
149- // Helluntai --> 49 päivää pääsiäisen jälkeen
150- DecodeDate(e+49, y,m,d);
151- if m = AMonth then
152- AddHoliday(d, Holidays);
153- end;
116+ end;
117+ result := EncodeDate(year, month, day);
118+end;
119+
120+procedure TForm1.CalendarLite1GetHolidays(Sender: TObject; AMonth, AYear: Integer;
121+ var Holidays: THolidays);
122+var
123+ d, m, y: Word;
124+ e: TDate;
125+begin
126+ ClearHolidays(Holidays);
127+ if not FNoHolidays then
128+ begin
129+ // Fixed holidays
130+ case AMonth of
131+ 1: AddHoliday(1, Holidays); // Uusi vuosi
132+ 12: AddHoliday(25, Holidays); // Joulupäivä
154133 end;
134+ // Pääsiäinen
135+ e := Easter(AYear);
136+ DecodeDate(e, y,m,d);
137+ if m = AMonth then
138+ AddHoliday(d, Holidays);
139+ // Helluntai --> 49 päivää pääsiäisen jälkeen
140+ DecodeDate(e+49, y,m,d);
141+ if m = AMonth then
142+ AddHoliday(d, Holidays);
143+ end;
144+end;
155145```
156146
157-Varmista, että kalenterissa on valittu vaihtoehto `coShowHolidays`, jonka avulla voit korostaa kalenterin lomapäiviä.
158-
159-
147+Varmista, että kalenterissa on valittu vaihtoehto `coShowHolidays`, jonka avulla voit korostaa kalenterin lomapäiviä.
160148
161149### Lomapäivien näyttö vihjeenä
162150
163-Jos halutaan näyttää lomapäivän nimi hint- ponnahdusikkunana kun hiiri "lepää" päivän päällä niin asetetaan kalenterin `ShowHint` arvoon `true` ja lisätään tapahtumakäsittelijä `OnHint`:
164-```
151+Jos halutaan näyttää lomapäivän nimi hint- ponnahdusikkunana kun hiiri "lepää" päivän päällä niin asetetaan kalenterin `ShowHint` arvoon `true` ja lisätään tapahtumakäsittelijä `OnHint`:
152+
153+``` pascal
165154procedure TForm1.CalendarLite1Hint(Sender: TObject; AYear, AMonth, ADay: Word;
166- var AText: String);
167- var
168- dt, e: TDate;
169- begin
170- AText := '';
171- case AMonth of
172- 1: if ADay = 1 then AText := 'New Year'; // Uusi vuosi
173- 12: if ADay = 25 then AText := 'Christmas';// Joulupäivä
174- else
175- e := Easter(AYear);
176- dt := EncodeDate(AYear, AMonth, ADay);
177- if (dt = e) then
178- AText := 'Easter' // Pääsiäinen
179- else if (dt = e + 49) then
180- AText := 'Whit Sunday'; // Helluntai
181- end;
182- end;
155+ var AText: String);
156+var
157+ dt, e: TDate;
158+begin
159+ AText := '';
160+ case AMonth of
161+ 1: if ADay = 1 then AText := 'New Year'; // Uusi vuosi
162+ 12: if ADay = 25 then AText := 'Christmas';// Joulupäivä
163+ else
164+ e := Easter(AYear);
165+ dt := EncodeDate(AYear, AMonth, ADay);
166+ if (dt = e) then
167+ AText := 'Easter' // Pääsiäinen
168+ else if (dt = e + 49) then
169+ AText := 'Whit Sunday'; // Helluntai
170+ end;
171+end;
183172```
184173
185174### Lomapäivien nimet kalenteriristikkoon
186175
187-Voidaan myös lisätä lomapäivien nimet suoraan kalenteriristikkoon. Lisäämällä `OnGetDayText` tapahtumakäsittelijä. On huomattava, että kalenterin koon on oltava riittävän suuri, jotta lisätilaa voidaan käyttää tekstille:
188-```
176+Voidaan myös lisätä lomapäivien nimet suoraan kalenteriristikkoon. Lisäämällä `OnGetDayText` tapahtumakäsittelijä. On huomattava, että kalenterin koon on oltava riittävän suuri, jotta lisätilaa voidaan käyttää tekstille:
177+
178+``` pascal
189179procedure TForm1.CalendarLite1GetDayText(Sender: TObject; AYear, AMonth, ADay: Word;
190- var AText: String);
191- var
192- s: String;
193- begin
194- GetHintText(Sender, AYear, AMonth, ADay, s);
195- if s <> '' then
196- AText := IntToStr(ADay) + LineEnding + s;
197- end;
180+ var AText: String);
181+var
182+ s: String;
183+begin
184+ GetHintText(Sender, AYear, AMonth, ADay, s);
185+ if s <> '' then
186+ AText := IntToStr(ADay) + LineEnding + s;
187+end;
198188```
199189
200190### Lomapäivät ponnahdusvalikossa
201191
202-Jos kalenterin `PopupMenu` ominaisuus on tyhjä, siinä on sisäänrakennettu ponnahdusvalikko, joka näyttää kaikki valitun vuoden lomia. Kuten tavallista, tämä ponnahdusikkuna avautuu klikkaamalla sitä hiiren kakkospainikkeella komponenttia.
192+Jos kalenterin `PopupMenu` ominaisuus on tyhjä, siinä on sisäänrakennettu ponnahdusvalikko, joka näyttää kaikki valitun vuoden lomia. Kuten tavallista, tämä ponnahdusikkuna avautuu klikkaamalla sitä hiiren kakkospainikkeella komponenttia.
203193
204194## Kuvakkeet tietyille päiville
205195
206-Seuraavassa esimerkissä kuvataan syntymäpäiväkuvake kunkin vuoden marraskuun 11. päivän soluun. Kuvake tallennetaan kuvaluetteloon ([[TImageList]]) indeksissä 0:
207-```
196+Seuraavassa esimerkissä kuvataan syntymäpäiväkuvake kunkin vuoden marraskuun 11. päivän soluun. Kuvake tallennetaan kuvaluetteloon ([[TImageList]]) indeksissä 0:
197+
198+``` pascal
208199procedure TForm1.CalendarLite1DrawCell(Sender: TObject; ACanvas: TCanvas;
209- AYear,AMonth,ADay: Word; AState: TCalCellStates; var ARect: TRect;
210- var AContinueDrawing: Boolean);
211- var
212- bmp: TBitmap;
213- begin
214- if (AMonth = 11) and (ADay = 11) and not (csOtherMonth in AState) then begin
215- bmp := TBitmap.Create;
216- try
217- ImageList1.GetBitmap(0, bmp);
218- ACanvas.Draw(ARect.Left, (ARect.Top + ARect.Bottom - bmp.Height) div 2, bmp);
219- inc(ARect.Left, bmp.Width + 2);
220- // Not changing AContinueDrawing from its default value (true) means
221- // that the day text is drawn by the built-in procedure into the reduced rectangle
222- finally
223- bmp.Free;
224- end;
225- end;
200+ AYear,AMonth,ADay: Word; AState: TCalCellStates; var ARect: TRect;
201+ var AContinueDrawing: Boolean);
202+var
203+ bmp: TBitmap;
204+begin
205+ if (AMonth = 11) and (ADay = 11) and not (csOtherMonth in AState) then begin
206+ bmp := TBitmap.Create;
207+ try
208+ ImageList1.GetBitmap(0, bmp);
209+ ACanvas.Draw(ARect.Left, (ARect.Top + ARect.Bottom - bmp.Height) div 2, bmp);
210+ inc(ARect.Left, bmp.Width + 2);
211+ // Not changing AContinueDrawing from its default value (true) means
212+ // that the day text is drawn by the built-in procedure into the reduced rectangle
213+ finally
214+ bmp.Free;
226215 end;
216+ end;
217+end;
227218```
228219
229220## Monivalinta
230221
231-Jos ominaisuus `MultiSelect` on asetettu `true` kalenteriin voidaan valita useita päiviä. Kaikki valitut päivät piirretään korostetulla taustalla. Monivalinta ohjataan pitämällä erikoisnäppäimiä alhaalla, kun valitset päivän joko hiiren klikkauksella tai näppäimen painalluksella:
222+Jos ominaisuus `MultiSelect` on asetettu `true` kalenteriin voidaan valita useita päiviä. Kaikki valitut päivät piirretään korostetulla taustalla. Monivalinta ohjataan pitämällä erikoisnäppäimiä alhaalla, kun valitset päivän joko hiiren klikkauksella tai näppäimen painalluksella:
232223
233- * **CTRL** : Jos painetaan `CTRL`-näppäintä niin kun valitaan toinen päivä niin päiväys lisätään valintaan. Tällä tavoin voidaan valita päivämäärät, jotka eivät ole vierekkäisiä.
234- * **SHIFT** : Jos `⇧ Shift`-näppäintä pidetään alhaalla päivänvalinnan aikana niin valintaan lisätään kaikki päivät aikaisemmin valitun ja nykyisen päivän välillä.
235- * **Kaksoisklikkaus** : Työpäivän kaksoisklikkaus valitsee kaikki työpäivät samalla viikolla. Painamalla `CTRL`\- tai `⇧ Shift`-näppäintä alhaalla valita laajenee yhden tai useamman viikon työpäivien valinnaksi.
236- * Valintaa voidaan laajentaa naapurikuukausiksi, jos näppäimistön nuolinäppäimiä painetaan `CTRL`-näppäimen ollessa alhaalla.
237- * Valinta poistetaan, jos jokin päivämäärä on valittu ilman, että painat mitään näistä näppäimistä tai jos yläpalkin nuolia tai pudotusvalikkoja käytetään.
238- * Jos aiemmin valitut päivät lisätään toisen kerran, niin ne poistetaan valituista.
224+- **CTRL**: Jos painetaan `CTRL`-näppäintä niin kun valitaan toinen päivä niin päiväys lisätään valintaan. Tällä tavoin voidaan valita päivämäärät, jotka eivät ole vierekkäisiä.
225+- **SHIFT**: Jos `SHIFT`-näppäintä pidetään alhaalla päivänvalinnan aikana niin valintaan lisätään kaikki päivät aikaisemmin valitun ja nykyisen päivän välillä.
226+- **Kaksoisklikkaus**: Työpäivän kaksoisklikkaus valitsee kaikki työpäivät samalla viikolla. Painamalla `CTRL`- tai `SHIFT`-näppäintä alhaalla valita laajenee yhden tai useamman viikon työpäivien valinnaksi.
227+- Valintaa voidaan laajentaa naapurikuukausiksi, jos näppäimistön nuolinäppäimiä painetaan `CTRL`-näppäimen ollessa alhaalla.
228+- Valinta poistetaan, jos jokin päivämäärä on valittu ilman, että painat mitään näistä näppäimistä tai jos yläpalkin nuolia tai pudotusvalikkoja käytetään.
229+- Jos aiemmin valitut päivät lisätään toisen kerran, niin ne poistetaan valituista.
239230
240231---
241-*From the Free Pascal wiki, page "CalLite: Usage/fi", as the Internet Archive kept it on 2025-02-12. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
232+*From the Free Pascal wiki, page "CalLite: Usage/fi", as it stood on 2019-10-24 after a change by Djzepi, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history