名前 題名 ▼ igyさん > TRzDateTimeEdit、TRzCalendarは、Konopka Signature VCL Controls 6.2.3に含まれており、 > GetItパッケージマネージャ−にて無償で入手できます。 > (10.3 RioのGetItでは「Bonus KSVC 6.2.3」と表記されてます。) > > 土曜日は青、日曜日や祝日は赤の文字で表示したい場合、 > OnGetDayFormatイベントで文字色を指定します。 > > TForm1 = class(TForm) > RzDateTimeEdit1: TRzDateTimeEdit; > RzCalendar1: TRzCalendar; > > procedure FormCreate(Sender: TObject); > procedure RzDateTimeEdit1GetDayFormat(Sender: TObject; DayDate: TDateTime; > Year, Month, Day: Word; var DayColor, DayFontColor: TColor; > var DayFontStyle: TFontStyles); > procedure RzCalendar1GetDayFormat(Sender: TObject; DayDate: TDateTime; Year, > Month, Day: Word; var DayColor, DayFontColor: TColor; > var DayFontStyle: TFontStyles); > procedure RzDateTimeEdit1ViewDateChange(Sender: TObject; ViewDate: TDateTime); > private > { Private 宣言 } > CurrentViewDate: TDateTime; // RzDateTimeEdit1用 > end; > > procedure TForm1.FormCreate(Sender: TObject); > begin > with RzDateTimeEdit1 do > begin > EditType := etDate; > > CaptionClearBtn := 'クリア'; > CaptionTodayBtn := '今日'; > end; > > with RzCalendar1 do > begin > //CaptionClearBtn := 'クリア'; > CaptionTodayBtn := '今日'; > > Elements := Elements - [ceClearButton]; > end; > > CurrentViewDate := 0; > end; > > // RzDateTimeEdit:OnGetDayFormatイベント > procedure TForm1.RzDateTimeEdit1GetDayFormat(Sender: TObject; DayDate: TDateTime; > Year, Month, Day: Word; var DayColor, DayFontColor: TColor; var DayFontStyle: TFontStyles); > var > S: String; > isSameYMView: Boolean; > begin > isSameYMView := SameDate(StartOfTheMonth(DayDate), StartOfTheMonth(CurrentViewDate)); > // TRzCalendarのViewDateプロパティに該当するものがないのでViewDateChangeイベントで取得したViewDateで比較 > > if (DayOfWeek(DayDate) = 1) or IsSpecialHoliday(DayDate, S) then // 日曜か祝日 > begin > DayFontColor := clRed; > if not isSameYMView then > DayFontColor := RGB(255, 144, 144); > end > else if DayOfWeek(DayDate) = 7 then // 土曜 > begin > DayFontColor := clBlue; > if not isSameYMView then > DayFontColor := RGB(128, 128, 255); > end; > end; > > // RzCalendar:OnGetDayFormatイベント > procedure TForm1.RzCalendar1GetDayFormat(Sender: TObject; DayDate: TDateTime; > Year, Month, Day: Word; var DayColor, DayFontColor: TColor; var DayFontStyle: TFontStyles); > var > S: String; > isSameYMView: Boolean; > begin > isSameYMView := SameDate(StartOfTheMonth(DayDate), StartOfTheMonth(TRzCalendar(Sender).ViewDate)); > > if (DayOfWeek(DayDate) = 1) or IsSpecialHoliday(DayDate, S) then // 日曜か祝日 > begin > DayFontColor := clRed; > if not isSameYMView then > DayFontColor := RGB(255, 144, 144); > end > else if DayOfWeek(DayDate) = 7 then // 土曜 > begin > DayFontColor := clBlue; > if not isSameYMView then > DayFontColor := RGB(128, 128, 255); > end; > end; > > procedure TForm1.RzDateTimeEdit1ViewDateChange(Sender: TObject; ViewDate: TDateTime); > begin > CurrentViewDate := ViewDate; > end; > > TRzCalendarではViewDateプロパティでカレンダーの年月が確認しているのですが、 > TRzDateTimeEditにはViewDateプロパティがないので、OnViewDateChangeイベントで取得したViewDateの値でカレンダーの年月を確認しています。 GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link