Einzelnen Beitrag anzeigen

Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
946 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

Re: Daten bei TMonthCalendar markieren

  Alt 23. Nov 2007, 18:28
Hi,

zu 1)
Delphi-Quellcode:
  if (Sender is TMonthCalendar) then
  begin
    DecodeDate((Sender as TMonthCalendar).Date, Y, M, D);
  case Y of
    2005 : case M of
              1 : (Sender as TMonthCalendar).BoldDays(DynArrRec[0].Months[0].Days, MonthBoldInfo);
              2 : (Sender as TMonthCalendar).BoldDays(DynArrRec[0].Months[1].Days, MonthBoldInfo);
           end;
    end;
  end;
zu 2) kein Vorschlag

zu 3)
Delphi-Quellcode:
type
  MonthsArr = record
    Month: Integer;
    Days : Array of LongWord;
  end;

  DynCalArr = record
    Year : Word;
    Months : Array of MonthsArr;
  end;

var
  DynArrRec : Array of DynCalArr;

procedure TForm1.FillDynaArrayRec;
begin
  SetLength(DynArrRec, 1); // 1 Jahr
  DynArrRec[0].Year := 2005; // 2005
  SetLength(DynArrRec[0].Months, 2); // 2 Monate
  DynArrRec[0].Months[0].Month := 1; // Januar
  SetLength(DynArrRec[0].Months[0].Days, 4); // 4 Tage
  DynArrRec[0].Months[0].Days[0] := 1;
  DynArrRec[0].Months[0].Days[1] := 8;
  DynArrRec[0].Months[0].Days[2] := 17;
  DynArrRec[0].Months[0].Days[3] := 25;
  DynArrRec[0].Months[1].Month := 2; // Februar
  SetLength(DynArrRec[0].Months[1].Days, 1); // 1 Tag
  DynArrRec[0].Months[1].Days[0] := 15;
end;
Hätte man mit Hilfe der Hilfe(BoldDays) und ein bischen Suchen in der DP (dynamisches Array) auch selber rauskriegen können.

Also, bessere Dich.

Gruß
  Mit Zitat antworten Zitat