掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ピンポ〜ン、明けおめ…(MonthCalendarExコンポ) (ID:32997)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
≪ハルコのスナック渚≫ 春子:「今日、久しぶりにカイトさんのカレンダーコンポを再DLしてみたらバージョンアップしてたよ」 http://kaito.es.land.to/lime/lime.cgi?MonthCalendarEx01 真琴:「え? カイトさんってダレ? ハルコさんがズ〜ッと手紙が来るのを待ってる彼氏?」 春子:「あ…それも忘れちゃったの、マコト、まぁ、その方が今年の出会いが新鮮でイイか?」 真琴:「ナニ言ってるンだか分からないけど、ハルコさん、そのコンポってどんなの?」 春子:「それより、そのWEBページのHOME覗いたらね、殺風景なのよコレが^^;、変な猫の絵が一つあるだけでコンテンツなんか何もないの…」 真琴:「そんなのドウでもイイから、コンポの話してよ、ハルコさん」 春子:「そう? …ほら、緑のチェックマークが付くようになってるのよ、右クリックでマークを消したり付けたりも出来ちゃう」 真琴:「コレいいね、でも、右クリックして付けたマークはアプリを再起動すると消えちゃうんじゃない?」 春子:「それは自分でファイルに保存しなきゃダメよ、このコンポ、保存まではやってくれないから」 type TKindOfDay = (kdMarkDay, kdHoliday, kdRegularHoliday); .......... type //PMarkDay = ^TMarkDay; TMarkDay = packed record Year: WORD; Month: WORD; Day: WORD; Color: WORD; WeekNum: TWeekNum; // Name: string; end; var DaysFile: array[TKindOfDay]of string = ('_MarkDay.dat','_Holiday.dat','_RegularHoliday.dat'); function TForm1.Load_DaysData(kind: TKindOfDay): Boolean; var i, cnt: WORD; md: TMarkDay; NewItem: THoliday; begin result := False; if not FileExists(DaysFile[kind]) then exit; with MonthCalendarEx1, TFileStream.Create(DaysFile[kind], fmOpenRead) do try case kind of kdMarkDay: begin Read(cnt, Sizeof(cnt)); MarkDays.Clear; for i:=0 to Pred(cnt) do begin Read(md, Sizeof(TMarkDay)); NewItem:= THoliday(MarkDays.Add); NewItem.Year:= md.Year; NewItem.Month:= md.Month; NewItem.Day:= md.Day; NewItem.WeekNum := md.Color; end; end; kdHoliday: begin Read(cnt, Sizeof(cnt)); Holidays.Clear; for i:=0 to Pred(cnt) do begin Read(md, Sizeof(TMarkDay)); NewItem:= THoliday(Holidays.Add); NewItem.Year:= md.Year; NewItem.Month:= md.Month; NewItem.Day:= md.Day; end; end; kdRegularHoliday: begin Read(cnt, Sizeof(cnt)); RegularHolidays.Clear; for i:=0 to Pred(cnt) do begin Read(md, Sizeof(TMarkDay)); NewItem:= THoliday(RegularHolidays.Add); NewItem.Month:= md.Month; NewItem.Day:= md.Day; NewItem.WeekNum := md.WeekNum; end; end; end; // Invalidate; result := True; finally Free; end; end; function TForm1.Save_DaysData(kind: TKindOfDay): Boolean; var i, cnt: WORD; item: THoliday; md: TMarkDay; begin with MonthCalendarEx1, TFileStream.Create(DaysFile[kind], fmCreate) do try case kind of kdMarkDay: begin cnt := MarkDays.Count; Write(cnt, Sizeof(cnt)); i:=0; while i < cnt do begin item := MarkDays[i]; md.Year := item.Year; md.Month := item.Month; md.Day := item.Day; md.Color := item.WeekNum; Write(md, Sizeof(TMarkDay)); inc(i); end; end; kdHoliday: begin cnt := Holidays.Count; Write(cnt, Sizeof(cnt)); i:=0; while i < cnt do begin item := Holidays[i]; md.Year := item.Year; md.Month := item.Month; md.Day := item.Day; Write(md, Sizeof(TMarkDay)); inc(i); end; end; kdRegularHoliday: begin cnt := RegularHolidays.Count; Write(cnt, Sizeof(cnt)); i:=0; while i < cnt do begin item := RegularHolidays[i]; md.Month := item.Month; md.Day := item.Day; md.WeekNum := item.WeekNum; Write(md, Sizeof(TMarkDay)); inc(i); end; end; end; result := True; finally Free; end; end; procedure TForm1.Button1Click(Sender: TObject); begin Save_DaysData(kdMarkDay); Save_DaysData(kdHoliday); Save_DaysData(kdRegularHoliday); end; procedure TForm1.Button2Click(Sender: TObject); begin Load_DaysData(kdMarkDay); Load_DaysData(kdHoliday); Load_DaysData(kdRegularHoliday); MonthCalendarEx1.Invalidate; end; 真琴:「あっ、そっか、そういうことね^^ゞ、これアタシも使ってみようかな?」 春子:「マークの色は、mbcBLUE、mbcRED、mbcGREENの3色あるみたいよ」 真琴:「前後の月の日はマークの色がグレイになるね、それもイイじゃない?」 春子:「同時に3色のマークを使えれば、もっとイイけどね」 真琴:「何のマークだか分かるようにマウスポインタをそこに動かしたら表示するようにも…」 春子:「マコト、そのアイデア良いよ、何のマークだか忘れちゃうコトあるから^^ゞ」 真琴:「あ…そういえば、アタシの部屋のカレンダーの7月と9月に赤いマークが付いてるンだけど…ハルコさんのシワザ?」 春子:「アタシがマコトのカレンダーをイジルわけないでしょ、マサルさんがやったんじゃない?」 真琴:「おじいちゃんもそんなコトしないよ」 春子:「じゃぁ、マコトが自分でマークを付けたんだよ、きっと」 真琴:「でも、アタシ、全然憶えてないよ、7月7日は、多分七夕だと思うけど、9月の方はナゾ」 春子:「自分で付けたマークのナゾかぁ、マコト、そんな小説でも書いたら? 売れるかも^^ゞ」 真琴:「チャカさないでよ、ハルコさん、マークの横に、"ゼッタイ忘れちゃダメ"って書いてあるのに…」 春子:「アタシも去年マコトに何か聞いたような気がするンだけどね」 真琴:「ハルコさんもそれがナンだか憶えてないの?」 春子:「でも、9月が近づけばきっと分かるから、あんまり気にしない方がイイよ、マコト、忘れるようじゃ、たいしたコトでもないって」
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.