Hier ein Beispiel, wie man 3 Tage "bold" macht:
Delphi-Quellcode:
procedure TForm1.MonthCalendar1GetMonthInfo(Sender: TObject; Month: Cardinal; var MonthBoldInfo: Cardinal);
procedure MakeBoldDay(day : Integer);
begin
MonthBoldInfo := MonthBoldInfo or (1 shl (day-1));
end;
begin
MonthBoldInfo := 0; // alle Tage "normal"
MakeBoldDay(13);
MakeBoldDay(17);
MakeBoldDay(21);
end;
Und jetzt für ein ganzes Jahr:
Delphi-Quellcode:
var
boldMonths: array[0..11] of Cardinal;
...
procedure ClearAll;
var
i : integer;
begin
for i := Low(boldMonths) to High(boldMonths) do boldMonths[i] := 0;
end;
procedure MakeBoldDay(month,day : Integer);
begin
boldMonths[month] := boldMonths[month] or (1 shl (day-1));
end;
procedure TForm1.MonthCalendar1GetMonthInfo(Sender: TObject; Month: Cardinal; var MonthBoldInfo: Cardinal);
begin
MonthBoldInfo:= boldMonths[Month];
end;
procedure SetupAll;
begin
ClearAll; // alle Tage Normal
MakeBoldDay(1, 1); // Neujahr
MakeBoldDay(12, 24); // Weihnachten
....
end;