ひまわりユーザー プログラム掲示板 バックアップ
注意
ひまわりのススメ  □ ひまわり本家Home  □ 新着記事  □ 新規投稿  □ SEARCH  □ 参考プログラム集
ツリー表示

MESSAGE Y'sカレンダー ver1.20 /Yosshy (02/09/06(Fri) 13:34) [33]
......MESSAGE Y'sカレンダー ver1.20(続き) /Yosshy (02/09/06(Fri) 13:36) [34]
......MESSAGE Y'sカレンダー ver1.21(前編) /Yosshy (02/09/10(Tue) 13:34) [59]
............MESSAGE Y'sカレンダー ver1.21(後編) /Yosshy (02/09/10(Tue) 13:36) [60]


親記事 / ▼[ 34 ] ▼[ 59 ]
NO.33  Y'sカレンダー ver1.20
□投稿者/ Yosshy -(2002/09/06(Fri) 13:34:45)
□U R L/ http://www.aa.alpha-net.ne.jp/yosshy4/yosshy/top.html
ようやく完成しました。
このプログラムは、私のHPでもDLできます。
今回のバージョンから、ランタイム必要版も置きましたので、ひまわりユーザーの方には便利かと思います。
(ちなみにDLサイズは、ランタイム含む版は1.78MB、ランタイム必要版は66.7KB)
ここのプログラムでは、ヘルプファイルが無いので、どちらかというとHPからDLしてほしいです。
見所は、設定ダイアログと、表示する年月の変更に使う操作パネルです。
これからもまだ改良を加えていくつもりです。
{▼ここから最後までプログラム(途中で次へ続く)}
{---プログラム掲示板投稿フォーム---
【ソフト名】Y'sカレンダー (バージョン 1.20)
【作 成 者】Yosshy (連絡先:yosshy4@m21.alpha-net.ne.jp)
【種  別】フリーソフトウェア
【ひまわりのバージョン】ver.1.56
【転  載】可(転載条件:作者にメールで連絡すること)
【改変運用】可
【ひまわり本体への梱包】可
【実行時に利用作成するファイル】Y'sカレンダー.txt(ヘルプファイルとして利用)
                        YsCalendar.ini(設定ファイル)
【コメント】ようやく形になってきました。
今回のバージョンアップに伴い、設定関連を一新しましたが、ダイアログに関して苦労しました。
しかし、何とかできたと思います。
これもムラりさんと、プレイヤーさん、そしてmokaさんのおかげです。
とりわけmokaさんには一番お世話になっていると思います。
まだまだやりたいことはありますが、少しずつ手を加えていきたいと思います。
---投稿フォームここまで---}
*設定フォーム
「User32」の、「DWORD GetSystemMenu(DWORD,BOOL)」を、「?,?」の、「API_GetSystemMenu」として、DLLを利用。
「User32」の、「BOOL EnableMenuItem(DWORD,int,int)」を、「?,?,?」の、「API_EnableMenuItem」として、DLLを利用。
オプションフォームを、作る。
   その、スタイルは、ダイアログスタイル。
   その、可視は、オフ。
   その、背景色は、ウインドウ色。
   その、幅は、400。その、高さは、250。
   その、テキストは、「表示設定」。
文字サイズ=11。
(10,10)に、色設定ラベルを、作る。
   そを、オプションフォームに、乗せる。
   その、幅は、380。
   その、高さは、80。
   その、透過処理は、オフ。
   その、背景色は、白色。
(25,30)に、色0ボタンを、作る。
   そを、オプションフォームに、乗せる。
   その、フォントサイズは、10。
   その、テキストは、「平日」。
   その、フォント色は、黒色。
   その、イベントは、(
      色選択。
      色0ボタンの、フォント色は、それ。
      F色0=それ。
   )
(120,30)に、色2ボタンを、作る。
   そを、オプションフォームに、乗せる。
   その、フォントサイズは、10。
   その、テキストは、「土曜」。
   その、フォント色は、青色。
   その、イベントは、(
      色選択。
      色2ボタンの、フォント色は、それ。
      F色2=それ。
   )
(215,30)に、色1ボタンを、作る。
   そを、オプションフォームに、乗せる。
   その、フォントサイズは、10。
   その、テキストは、「日曜」。
   その、フォント色は、赤色。
   その、イベントは、(
      色選択。
      色1ボタンの、フォント色は、それ。
      F色1=それ。
   )
(310,30)に、色3ボタンを、作る。
   そを、オプションフォームに、乗せる。
   その、フォントサイズは、10。
   その、テキストは、「祝日」。
   その、フォント色は、赤色。
   その、イベントは、(
      色選択。
      色3ボタンの、フォント色は、それ。
      F色3=それ。
   )
(25,65)に、枠表示チェックを、作る。
   そを、オプションフォームに、乗せる。
   その、テキストは、「今日のところに枠をつける」。
   その、幅は、250。
   その、値は、オフ。
   その、イベントは、(
      もし、(枠表示チェックの、値)=オンならば、枠C=1。
      違えば、枠C=0。
   )
(310,60)に、色4ボタンを、作る。
   そを、オプションフォームに、乗せる。
   その、フォントサイズは、10。
   その、テキストは、「今日の枠」。
   その、フォント色は、緑色。
   その、イベントは、(
      色選択。
      色4ボタンの、フォント色は、それ。
      F色4=それ。
   )
(10,100)に、表示月数ラベルを、作る。
   そを、オプションフォームに、乗せる。
   その、幅は、380。
   その、透過処理は、オフ。
   その、背景色は、白色。
(100,100)に、表示月数コンボを、作る。
   そを、オプションフォームに、乗せる。
   その、幅は、100。
   その、アイテムは、「1ヶ月\n2ヶ月\n3ヶ月\n6ヶ月\n12ヶ月\n年間\n年度」
   その、値は、0。
   その、イベントは、(
      (表示月数コンボの、値)で、条件分岐。
         0の時、F月数=「1ヶ月」。
         1の時、F月数=「2ヶ月」。
         2の時、F月数=「3ヶ月」。
         3の時、F月数=「6ヶ月」。
         4の時、F月数=「12ヶ月」。
         5の時、F月数=「年間表示」。
         6の時、F月数=「年度表示」。
   )
(10,130)に、フォントサイズラベルを、作る。
   そを、オプションフォームに、乗せる。
   その、幅は、380。
   その、透過処理は、オフ。
   その、背景色は、白色。
(120,130)に、フォントサイズエディタを、作る。
   そを、オプションフォームに、乗せる。
   その、幅は、50。
   その、テキストは、「12」。
   その、イベントは、(
      (フォントサイズエディタの、テキスト)を、"%f"の、指定形式に変換。
      Fフォント=それ。
   )
(10,160)に、曜日設定ラベルを、作る。
   そを、オプションフォームに、乗せる。
   その、幅は、380。
   その、透過処理は、オフ。
   その、背景色は、白色。
(100,160)に、曜日設定コンボを、作る。
   そを、オプションフォームに、乗せる。
   その、幅は、250。
   その、アイテムは、「日,月,火,水,木,金,土\nS,M,T,W,T,F,S\nSun,Mon,Tue,Wed,Thu,Fri,Sat\nD,L,M,M,J,V,S\nDim,Lun,Mar,Mer,Jeu,Ven,Sam\nS,M,D,M,D,F,S\nSon,Mon,Die,Mit,Don,Fre,Sam\n休,平,平,平,平,平,休\n復,元,懸,中,疲,倒,休」。
   その、値は、0。
   その、イベントは、(
      (曜日設定コンボの、値)で、条件分岐。
         0の時、F曜日=「日,月,火,水,木,金,土」。
         1の時、F曜日=「S,M,T,W,T,F,S」。
         2の時、F曜日=「Sun,Mon,Tue,Wed,Thu,Fri,Sat」。
         3の時、F曜日=「D,L,M,M,J,V,S」。
         4の時、F曜日=「Dim,Lun,Mar,Mer,Jeu,Ven,Sam」。
         5の時、F曜日=「S,M,D,M,D,F,S」。
         6の時、F曜日=「Son,Mon,Die,Mit,Don,Fre,Sam」。
         7の時、F曜日=「休,平,平,平,平,平,休」。
         8の時、F曜日=「復,元,懸,中,疲,倒,休」。
   )
(20,200)に、デフォルトボタンを、作る。
   そを、オプションフォームに、乗せる。
   その、イベントは(
      色0ボタンの、フォント色を、黒色に、設定。F色0=黒色。
      色1ボタンの、フォント色を、赤色に、設定。F色1=赤色。
      色2ボタンの、フォント色を、青色に、設定。F色2=青色。
      色3ボタンの、フォント色を、赤色に、設定。F色3=赤色。
      色4ボタンの、フォント色を、緑色に、設定。F色4=緑色。
      枠表示チェックの、値を、オンに、設定。枠C=1。
      表示月数コンボの、値を、0に、設定。F月数=「1ヶ月」。
      曜日設定コンボの、値を、0に、設定。F曜日=「日,月,火,水,木,金,土」。
      フォントサイズエディタの、テキストを、「12」に、設定。Fフォント=12。
   )
(220,200)に、OKボタンを、作る。
   そを、オプションフォームに、乗せる。
   その、イベントは(
      色0=F色0。それは、色0。
      「色設定」の、「色0」へ、INIファイル書く。
      色1=F色1。それは、色1。
      「色設定」の、「色1」へ、INIファイル書く。
      色2=F色2。それは、色2。
      「色設定」の、「色2」へ、INIファイル書く。
      色3=F色3。それは、色3。
      「色設定」の、「色3」へ、INIファイル書く。
      色4=F色4。それは、色4。
      「色設定」の、「色4」へ、INIファイル書く。
      週=F曜日。それは、週。
      「表示設定」の、「週表示」へ、INIファイル書く。
      今日表示=枠C。それは、今日表示。
      「表示設定」の、「今日表示」へ、INIファイル書く。
      表示月数=F月数。それは、表示月数。
      「表示設定」の、「表示月数」へ、INIファイル書く。
      fontsize=Fフォント。それは、fontsize。
      「表示設定」の、「フォントサイズ」へ、INIファイル書く。
      オプションフォームの、可視は、オフ。
      母艦の、有効は、オン。
      文字サイズ=12。
      メインへ、飛ぶ。
   )
(300,200)に、キャンセルボタンを、作る。
   そを、オプションフォームに、乗せる。
   その、イベントは(
      オプションフォームの、可視は、オフ。
      母艦の、有効は、オン。
      文字サイズ=12。
      メインへ、飛ぶ。
   )
システムメニューのハンドル=API_GetSystemMenu((オプションフォームの、ハンドル),0)
API_EnableMenuItem(システムメニューのハンドル,$F060,1)

*コントロールパネル
コントロールフォームを、作る。
   その、スタイルは、ダイアログスタイル。
   その、可視は、オン。
   その、テキストは、「操作パネル」。
   その、幅は、120。
   その、高さは、200。
文字サイズ=10。
(10,10)に、任意月エディタを、作る。
   そを、コントロールフォームに、乗せる。
   その、幅は、80。
(90,10)に、Goボタンを、作る。
   そを、コントロールフォームに、乗せる。
   その、幅は、20。
   その、イベントは(
      それは、(任意月エディタの、テキスト)。
      もし、それ=「」ならば、待機。
      もし、文字数(それ)=7でなければ、待機。
      今月=それ&「/01」。
      メインへ、飛ぶ。
   )
(5,50)に、前年ボタンを、作る。
   そを、コントロールフォームに、乗せる。
   その、幅は、20。
   その、テキストは、「≪」。
   その、イベントは(
      今月=日付加算(今月,「-1/0/0」)。
      メインへ、飛ぶ。
   )
(27,50)に、前月ボタンを、作る。
   そを、コントロールフォームに、乗せる。
   その、幅は、20。
   その、テキストは、「<」。
   その、イベントは(
      今月=日付加算(今月,「-0/1/0」)。
      メインへ、飛ぶ。
   )
(50,50)に、現在月ボタンを、作る。
   そを、コントロールフォームに、乗せる。
   その、幅は、20。
   その、テキストは、「○」。
   その、イベントは(
      今月=LEFT(今日,8)&「01」。
      メインへ、飛ぶ。
   )
(73,50)に、来月ボタンを、作る。
   そを、コントロールフォームに、乗せる。
   その、幅は、20。
   その、テキストは、「>」。
   その、イベントは(
      今月=日付加算(今月,「0/1/0」)。
      メインへ、飛ぶ。
   )
(95,50)に、来年ボタンを、作る。
   そを、コントロールフォームに、乗せる。
   その、幅は、20。
   その、テキストは、「≫」。
   その、イベントは(
      今月=日付加算(今月,「1/0/0」)。
      メインへ、飛ぶ。
   )
(20,120)に、方法ラベルを、作る。
   そを、コントロールフォームに、乗せる。
   その、テキストは、「≪:1年戻る\n<:1ヶ月戻る\n○:現在月\n>:1ヶ月進む\n≫:1年進む\nGo:記した月へ」。
システムメニューのハンドル=API_GetSystemMenu((コントロールフォームの、ハンドル),0)
API_EnableMenuItem(システムメニューのハンドル,$F060,1)

*タイトル
母艦の、タイトルは、「Y'sカレンダー」
母艦の、リサイズは、オフ。
「YsCalendar.ini」の、INIファイル開く。
今月=LEFT(今日,8)&「01」。
「色設定」の、「色0」を、INIファイル読む。
色0=それ。'平日
「色設定」の、「色1」を、INIファイル読む。
色1=それ。'休日
「色設定」の、「色2」を、INIファイル読む。
色2=それ。'土曜日
「色設定」の、「色3」を、INIファイル読む。
色3=それ。'祝日
「色設定」の、「色4」を、INIファイル読む。
色4=それ。'今日の枠
「表示設定」の、「週表示」を、INIファイル読む。
週=それ。'曜日の表示
「表示設定」の、「今日表示」を、INIファイル読む。
今日表示=それ。'今日の枠
「表示設定」の、「表示月数」を、INIファイル読む。
表示月数=それ。'表示する月の数
「表示設定」の、「フォントサイズ」を、INIファイル読む。
fontsize=それ。'フォントサイズ
nを、1から、9まで、繰り返す(
   「記念日」の、「特定日#{n}」を、INIファイル読む。
   特定日#n=それ。
   「記念日」の、「特定日色#{n}」を、INIファイル読む。
   特定日色#n=それ。
)。
nを、1から、9まで、繰り返す(
   「記念日」の、「毎年事#{n}」を、INIファイル読む。
   毎年事#n=それ。
   「記念日」の、「毎年事色#{n}」を、INIファイル読む。
   毎年事色#n=それ。
)。
nを、1から、5まで、繰り返す(
   「記念日」の、「毎月事#{n}」を、INIファイル読む。
   毎月事#n=それ。
   「記念日」の、「毎月事色#{n}」を、INIファイル読む。
   毎月事色#n=それ。
)。

{▲続く}



▲[ 33 ] / 返信無し
NO.34  Y'sカレンダー ver1.20(続き)
□投稿者/ Yosshy -(2002/09/06(Fri) 13:36:04)
□U R L/ http://www.aa.alpha-net.ne.jp/yosshy4/yosshy/top.html
{▼プログラム続き}
*メニュー
設定メニューを、メニュー作成。
   その、テキストは、「&Control」。
設定メニューに、表示設定メニューを、メニュー追加。
   その、テキストは、「表示設定」。その、ショートカットキーは、「Ctrl+S」。
   その、イベントは、(
      色0ボタンの、フォント色を、色0に、設定。F色0=色0。
      色1ボタンの、フォント色を、色1に、設定。F色1=色1。
      色2ボタンの、フォント色を、色2に、設定。F色2=色2。
      色3ボタンの、フォント色を、色3に、設定。F色3=色3。
      色4ボタンの、フォント色を、色4に、設定。F色4=色4。
      もし、今日表示=1ならば、(枠表示チェックの、値を、オンに、設定。)
      違えば、(枠表示チェックの、値を、オフに、設定。)
      枠C=今日表示。
      表示月数で、条件分岐。
         「1ヶ月」の時、(表示月数コンボの、値を、0に、設定。)
         「2ヶ月」の時、(表示月数コンボの、値を、1に、設定。)
         「3ヶ月」の時、(表示月数コンボの、値を、2に、設定。)
         「6ヶ月」の時、(表示月数コンボの、値を、3に、設定。)
         「12ヶ月」の時、(表示月数コンボの、値を、4に、設定。)
         「年間表示」の時、(表示月数コンボの、値を、5に、設定。)
         「年度表示」の時、(表示月数コンボの、値を、6に、設定。)
      F月数=表示月数。
      週で、条件分岐。
         「日,月,火,水,木,金,土」の時、(曜日設定コンボの、値を、0に、設定。)
         「S,M,T,W,T,F,S」の時、(曜日設定コンボの、値を、1に、設定。)
         「Sun,Mon,Tue,Wed,Thu,Fri,Sat」の時、(曜日設定コンボの、値を、2に、設定。)
         「D,L,M,M,J,V,S」の時、(曜日設定コンボの、値を、3に、設定。)
         「Dim,Lun,Mar,Mer,Jeu,Ven,Sam」の時、(曜日設定コンボの、値を、4に、設定。)
         「S,M,D,M,D,F,S」の時、(曜日設定コンボの、値を、5に、設定。)
         「Son,Mon,Die,Mit,Don,Fre,Sam」の時、(曜日設定コンボの、値を、6に、設定。)
         「休,平,平,平,平,平,休」の時、(曜日設定コンボの、値を、7に、設定。)
         「復,元,懸,中,疲,倒,休」の時、(曜日設定コンボの、値を、8に、設定。)
      F曜日=週。
      フォントサイズエディタの、テキストを、「{fontsize}」に、設定。
      Fフォント=fontsize。
      母艦の、有効は、オフ。
      オプションフォームの、可視は、オン。
   )
設定メニューに、記念日メニューを、メニュー追加。
   その、テキストは、「記念日設定」。
   記念日メニューに、特定日メニューを、メニュー追加。
      その、テキストは、「特定日設定」。
      特定日メニューに、特定1メニューを、メニュー追加。
         その、テキストは、「&1:{特定日#1}」。
         その、イベントは(n=1。特定年月日へ、飛ぶ。)
      特定日メニューに、特定2メニューを、メニュー追加。
         その、テキストは、「&2:{特定日#2}」。
         その、イベントは(n=2。特定年月日へ、飛ぶ。)
      特定日メニューに、特定3メニューを、メニュー追加。
         その、テキストは、「&3:{特定日#3}」。
         その、イベントは(n=3。特定年月日へ、飛ぶ。)
      特定日メニューに、特定4メニューを、メニュー追加。
         その、テキストは、「&4:{特定日#4}」。
         その、イベントは(n=4。特定年月日へ、飛ぶ。)
      特定日メニューに、特定5メニューを、メニュー追加。
         その、テキストは、「&5:{特定日#5}」。
         その、イベントは(n=5。特定年月日へ、飛ぶ。)
      特定日メニューに、特定6メニューを、メニュー追加。
         その、テキストは、「&6:{特定日#6}」。
         その、イベントは(n=6。特定年月日へ、飛ぶ。)
      特定日メニューに、特定7メニューを、メニュー追加。
         その、テキストは、「&7:{特定日#7}」。
         その、イベントは(n=7。特定年月日へ、飛ぶ。)
      特定日メニューに、特定8メニューを、メニュー追加。
         その、テキストは、「&8:{特定日#8}」。
         その、イベントは(n=8。特定年月日へ、飛ぶ。)
      特定日メニューに、特定9メニューを、メニュー追加。
         その、テキストは、「&9:{特定日#9}」。
         その、イベントは(n=9。特定年月日へ、飛ぶ。)
   記念日メニューに、毎年事メニューを、メニュー追加。
      その、テキストは、「毎年事設定」。
      毎年事メニューに、毎年1メニューを、メニュー追加。
         その、テキストは、「&1:{毎年事#1}」。
         その、イベントは(n=1。毎年特定日へ、飛ぶ。)
      毎年事メニューに、毎年2メニューを、メニュー追加。
         その、テキストは、「&2:{毎年事#2}」。
         その、イベントは(n=2。毎年特定日へ、飛ぶ。)
      毎年事メニューに、毎年3メニューを、メニュー追加。
         その、テキストは、「&3:{毎年事#3}」。
         その、イベントは(n=3。毎年特定日へ、飛ぶ。)
      毎年事メニューに、毎年4メニューを、メニュー追加。
         その、テキストは、「&4:{毎年事#4}」。
         その、イベントは(n=4。毎年特定日へ、飛ぶ。)
      毎年事メニューに、毎年5メニューを、メニュー追加。
         その、テキストは、「&5:{毎年事#5}」。
         その、イベントは(n=5。毎年特定日へ、飛ぶ。)
      毎年事メニューに、毎年6メニューを、メニュー追加。
         その、テキストは、「&6:{毎年事#6}」。
         その、イベントは(n=6。毎年特定日へ、飛ぶ。)
      毎年事メニューに、毎年7メニューを、メニュー追加。
         その、テキストは、「&7:{毎年事#7}」。
         その、イベントは(n=7。毎年特定日へ、飛ぶ。)
      毎年事メニューに、毎年8メニューを、メニュー追加。
         その、テキストは、「&8:{毎年事#8}」。
         その、イベントは(n=8。毎年特定日へ、飛ぶ。)
      毎年事メニューに、毎年9メニューを、メニュー追加。
         その、テキストは、「&9:{毎年事#9}」。
         その、イベントは(n=9。毎年特定日へ、飛ぶ。)
   記念日メニューに、毎月事メニューを、メニュー追加。
      その、テキストは、「毎月事設定」。
      毎月事メニューに、毎月1メニューを、メニュー追加。
         その、テキストは、「&1:{毎月事#1}」。
         その、イベントは(n=1。毎月特定日へ、飛ぶ。)
      毎月事メニューに、毎月2メニューを、メニュー追加。
         その、テキストは、「&2:{毎月事#2}」。
         その、イベントは(n=2。毎月特定日へ、飛ぶ。)
      毎月事メニューに、毎月3メニューを、メニュー追加。
         その、テキストは、「&3:{毎月事#3}」。
         その、イベントは(n=3。毎月特定日へ、飛ぶ。)
      毎月事メニューに、毎月4メニューを、メニュー追加。
         その、テキストは、「&4:{毎月事#4}」。
         その、イベントは(n=4。毎月特定日へ、飛ぶ。)
      毎月事メニューに、毎月5メニューを、メニュー追加。
         その、テキストは、「&5:{毎月事#5}」。
         その、イベントは(n=5。毎月特定日へ、飛ぶ。)
設定メニューに、区切り線4を、メニュー追加。
   その、テキストは、「-」。
設定メニューに、印刷メニューを、メニュー追加。
   その、テキストは、「印刷」。その、ショートカットキーは、「Ctrl+P」。
   その、イベントは(
      *プリント
      母艦印刷。
   )
設定メニューに、保存メニューを、メニュー追加。
   その、テキストは、「保存」。その、ショートカットキーは、「Ctrl+F」。
   その、イベントは(
      *画像として保存
      ダイアログ初期値=「」。
      ダイアログキャンセルの値=「」。
      「ビットマップ形式 (*.bmp)(推奨)|*.bmp|PNG形式 (*.png)|*.png|JPEG形式 (*.jpg)|*.jpg|全てのファイル (*.*)|*.*」の、書込ファイル選択。
      もし、それが、「」でなければ、(
         それへ、母艦を、イメージ保存。
      )
      とりあえずへ、飛ぶ。
   )
設定メニューに、区切り線5を、メニュー追加。
   その、テキストは、「-」。
設定メニューに、バージョンメニューを、メニュー追加。
   その、テキストは、「バージョン」。
   その、イベントは(
      文字サイズ=10。
      「Y'sカレンダー ver.1.20\n (c)Yosshy」と、言う。
      文字サイズ=12。
   )
設定メニューに、ヘルプメニューを、メニュー追加。
   その、テキストは、「ヘルプ」。その、ショートカットキーは、「F1」。
   その、イベントは(
      「Y'sカレンダー.txt」を、起動。
   )
設定メニューに、終了メニューを、メニュー追加。
   その、テキストは、「終了」。その、ショートカットキーは、「Alt+X」。
   その、イベントは(
      *ENDE
      「終了しますか」と、二択。
      もし、それが、はいならば、(INIファイル閉じる。終わり。)
   )
システムメニューのハンドル=API_GetSystemMenu((母艦の、ハンドル),0)
API_EnableMenuItem(システムメニューのハンドル,$F060,1)

*メイン
画面クリア。
全体表示を、呼ぶ。
*とりあえず
文字色=黒色。
文字サイズ=12。
待機。

*特定年月日
ダイアログキャンセルの値=「」。
ダイアログ初期値=特定日#n。
「特定年月日を入力してください。(例:2002/06/30)」と、尋ねる。
もし、それ=「」ならば、(
「記念日」の、「特定日#{n}」へ、INIファイル書く。
特定日#n=それ。
それは、白色。
「記念日」の、「特定日色#{n}」へ、INIファイル書く。
特定日色#n=それ。
メインへ、飛ぶ)。
もし、文字数(それ)=10でなければ、待機。
「記念日」の、「特定日#{n}」へ、INIファイル書く。
特定日#n=それ。
ダイアログキャンセルの値=#FFFFFF。
ダイアログ初期値=特定日色#n。
「背景色を選んでください」と、言って、色選択。
「記念日」の、「特定日色#{n}」へ、INIファイル書く。
特定日色#n=それ。
メインへ、飛ぶ。

*毎年特定日
ダイアログキャンセルの値=「」。
ダイアログ初期値=毎年事#n。
「特定月日を入力してください。(例:08/15)」と、尋ねる。
もし、それ=「」ならば、(
「記念日」の、「毎年事#{n}」へ、INIファイル書く。
毎年事#n=それ。
それは、白色。
「記念日」の、「毎年事色#{n}」へ、INIファイル書く。
毎年事色#n=それ。
メインへ、飛ぶ)。
もし、文字数(それ)=5でなければ、待機。
「記念日」の、「毎年事#{n}」へ、INIファイル書く。
毎年事#n=それ。
ダイアログキャンセルの値=#FFFFFF。
ダイアログ初期値=毎年事色#n。
「背景色を選んでください」と、言って、色選択。
「記念日」の、「毎年事色#{n}」へ、INIファイル書く。
毎年事色#n=それ。
メインへ、飛ぶ。

*毎月特定日
ダイアログキャンセルの値=「」。
ダイアログ初期値=毎月事#n。
「特定日を入力してください。(例:01)」と、尋ねる。
もし、それ=「」ならば、(
「記念日」の、「毎月事#{n}」へ、INIファイル書く。
毎月事#n=それ。
それは、白色。
「記念日」の、「毎月事色#{n}」へ、INIファイル書く。
毎月事色#n=それ。
メインへ、飛ぶ)。
もし、文字数(それ)=2でなければ、待機。
「記念日」の、「毎月事#{n}」へ、INIファイル書く。
毎月事#n=それ。
ダイアログキャンセルの値=#FFFFFF。
ダイアログ初期値=毎月事色#n。
「背景色を選んでください」と、言って、色選択。
「記念日」の、「毎月事色#{n}」へ、INIファイル書く。
毎月事色#n=それ。
メインへ、飛ぶ。

*全体表示
calw=INT(fontsize*15);calh=INT(fontsize*13.5)
表示月数で、条件分岐。
   「1ヶ月」の時、(横=1。縦=1。カレンダー表示を、呼ぶ)。
   「2ヶ月」の時、(横=2。縦=1。カレンダー表示を、呼ぶ)。
   「3ヶ月」の時、(横=3。縦=1。カレンダー表示を、呼ぶ)。
   「6ヶ月」の時、(横=3。縦=2。カレンダー表示を、呼ぶ)。
   「12ヶ月」の時、(横=4。縦=3。カレンダー表示を、呼ぶ)。
   「年間表示」の時、(横=4。縦=3。カレンダー表示を、呼ぶ)。
   「年度表示」の時、(横=4。縦=3。カレンダー表示を、呼ぶ)。
戻る。

*カレンダー表示
母艦の、幅は、calw*横。
母艦の、高さは、calh*縦。
当月=今月。
表示月数で、条件分岐。
   「年間表示」の時、(今月=LEFT(今月,5)&「01/01」。)
   「年度表示」の時、(今月=日付加算(今月,「-0/3/0」)。今月=LEFT(今月,5)&「04/01」。)
縦回(SY=回数。
   横回(SX=回数。
      SW=(SX-1)*calw。SH=(SY-1)*calh。
      日数設定を、呼ぶ。
      今月=日付加算(今月,「0/1/0」)。
   )
)
今月=当月。
戻る。

*日数設定
今月を、「/」で、区切る。
Yr=それ#0。M=それ#1。
日数=「31\n28\n31\n30\n31\n30\n31\n31\n30\n31\n30\n31」
もし、Yr%400=0ならば、日数#1="29"。
違えば(もし、Yr%100=0ならば、日数#1="28"。
   違えば(もし、Yr%4=0ならば、日数#1="29"。
     違えば、日数#1="28"。
   )。
)。
D=日数#(M-1)。
'ここよりカレンダーの表示
(SW+INT(calw/2-fontsize*3.3),SH+5)へ、移動。
文字色=色0。
文字サイズ=fontsize。
週初め=週#0#0。
週初めで、条件分岐。
   「日」の時、(「{Yr}年{M}月」と、表示。)。
   「S」の時、(「{Yr}年{M}月」と、表示。)。
   「Sun」の時、(「 {M}/{Yr}」と、表示。)。
   「D」の時、(「{Yr}年{M}月」と、表示。)。
   「Dim」の時、(「 {M}/{Yr}」と、表示。)。
   「Son」の時、(「 {M}/{Yr}」と、表示。)。
   「休」の時、(「{Yr}年{M}月」と、表示。)。
   「復」の時、(「{Yr}年{M}月」と、表示。)。
xサイズ=INT(fontsize*2.1);yサイズ=INT(fontsize*1.7);x=SW+5;y=SH+xサイズ
lx=INT(xサイズ/10);ly=INT(yサイズ/10)
7回(
   回数で、条件分岐。
      1の時(文字色=色1)
      7の時(文字色=色2)
      その他の時(文字色=色0)
   (x,y)へ、移動。
   (右寄せ(週#(回数-1)#0,2))と、表示。
   x=x+xサイズ。
)
月曜判定=0
x=SW+5;y=y+yサイズ
D回(
  本日=日付加算(今月,「0/0/{回数-1}」)。
   当日=本日。
  DAY=曜日を数値で得る(本日)。
   もし、DAY=2ならば、(月曜判定=月曜判定+1)
  DAYで、条件分岐。
      1の時(字色=1)
      7の時(字色=2)
      その他の時(字色=0)
   祝日判定を、呼ぶ。
  字色で、条件分岐。
      1の時(文字色=色1)
      2の時(文字色=色2)
      3の時(文字色=色3)
      その他の時(文字色=色0)
  本日=RIGHT(本日,2)
  もし、LEFT(本日,1)=0ならば、本日=RIGHT(本日,1)
  本日=右寄せ(本日,2)。
  もし、回数=1ならば、x=x+(DAY-1)*xサイズ。
  (x,y)へ、移動。
   ペン色=白色。
   塗り色=白色。
   nを、1から、5まで、繰り返す(もし、RIGHT(月日,2)=毎月事#nならば、塗り色=毎月事色#n。)。
   nを、1から、9まで、繰り返す(もし、月日=毎年事#nならば、塗り色=毎年事色#n。)。
   nを、1から、9まで、繰り返す(もし、当日=特定日#nならば、塗り色=特定日色#n。)。
   もし、今日表示=1ならば、(
      もし、同じ日=1ならば、(ペン色=色4。)
   )
   ペン太さ=INT(fontsize*0.15)。
   (x-lx,y-ly)から、(x-lx+yサイズ,y-ly+yサイズ)へ、四角形。
   本日と、表示。
  x=x+xサイズ。もし、DAY%7=0ならば、(x=SW+5;y=y+yサイズ)
)
戻る。

*祝日判定
'休日は1、祝日は3、今日は4
月日=RIGHT(本日,5)
春分=INT(20.8431+0.242194*(Yr-1980)-INT((Yr-1980)/4))
秋分=INT(23.2488+0.242194*(Yr-1980)-INT((Yr-1980)/4))
'その日判定
同じ日=0
もし、(本日=今日)ならば、(同じ日=1)。
'固定の祝日
月日で、条件分岐。
   「01/01」の時、字色=3
   「02/11」の時、字色=3
   「03/{春分}」の時、字色=3
   「04/29」の時、字色=3
   「05/03」の時、字色=3
   「05/05」の時、字色=3
   「09/{秋分}」の時、字色=3
   「11/03」の時、字色=3
   「11/23」の時、字色=3
   「12/23」の時、字色=3
   「05/04」の時、字色=3
もし、DAY=2ならば、(
   月日で、条件分岐。
      「01/02」の時、字色=1
      「02/12」の時、字色=1
      「03/{春分+1}」の時、字色=1
      「04/30」の時、字色=1
      「05/04」の時、字色=1
      「05/06」の時、字色=1
      「09/{秋分+1}」の時、字色=1
      「11/04」の時、字色=1
      「11/24」の時、字色=1
      「12/24」の時、字色=1
)
もし、DAY=1ならば、(
   月日で、条件分岐。
      「05/04」の時、字色=1
)
'2000年からのハッピーマンデー対応
もし、Yr<2000ならば、(
   月日で、条件分岐。
      「01/15」の時、字色=3
      「10/10」の時、字色=3
   もし、DAY=2ならば、(
      月日で、条件分岐。
         「01/16」の時、字色=1
         「10/11」の時、字色=1
   )
)
違えば、(
   もし、月曜判定=2ならば、(
      もし、DAY=2ならば、(
         Mで、条件分岐。
            「01」の時、字色=3
            「10」の時、字色=3
      )
   )
)
'2003年からのハッピーマンデー対応(敬老の日)
もし、Yr<2003ならば、(
   月日で、条件分岐。
      「09/15」の時、字色=3
   もし、DAY=2ならば、(
      月日で、条件分岐。
         「09/16」の時、字色=1
   )
)
違えば、(
   もし、月曜判定=3ならば、(
      もし、DAY=2ならば、(
         Mで、条件分岐。
            「09」の時、字色=3
      )
      もし、DAY=3ならば、(
         月日で、条件分岐。
            「09/{秋分-1}」の時、字色=3
      )
   )
)
'2003年からのハッピーマンデー対応(海の日)
もし、Yr>1995ならば、(
   もし、Yr<2003ならば、(
      月日で、条件分岐。
         「07/20」の時、字色=3
      もし、DAY=2ならば、(
         月日で、条件分岐。
            「07/21」の時、字色=1
      )
   )
   違えば、(
      もし、月曜判定=3ならば、(
         もし、DAY=2ならば、(
            Mで、条件分岐。
               「07」の時、字色=3
         )
      )
   )
)
戻る。
{▲ここまで}



▲[ 33 ] / ▼[ 60 ]
NO.59  Y'sカレンダー ver1.21(前編)
□投稿者/ Yosshy -(2002/09/10(Tue) 13:34:50)
□U R L/ http://www.aa.alpha-net.ne.jp/yosshy4/yosshy/top.html
以前より入れたかったものを、一つ入れました。月名の表示を、曜日に合わせてみました。この変更に合わせ、ほぼ真ん中に鎮座していた年月を、左に寄せました。実際どんなものかは見てみてください。
{▼ここから}
{---プログラム掲示板投稿フォーム---
【ソフト名】Y'sカレンダー (バージョン 1.21)
【作 成 者】Yosshy (連絡先:yosshy4@m21.alpha-net.ne.jp)
【種  別】フリーソフトウェア
【ひまわりのバージョン】ver.1.56
【転  載】可(転載条件:作者にメールで連絡すること)
【改変運用】可
【ひまわり本体への梱包】可
【実行時に利用作成するファイル】Y'sカレンダー.txt(ヘルプファイルとして利用)
                        YsCalendar.ini(設定ファイル)
【コメント】今回の更新では、月名の表示を、曜日に合わせて、その言語のものになるようにしました。(但し、頭文字1文字のもの以外)
でも、´,^,¨付きの文字を表示できるか分からなかったので、この記号なしの、単なるアルファベットだけで表しています。
まだまだやりたいことはありますが、少しずつ手を加えていきたいと思います。
---投稿フォームここまで---}
*設定フォーム
「User32」の、「DWORD GetSystemMenu(DWORD,BOOL)」を、「?,?」の、「API_GetSystemMenu」として、DLLを利用。
「User32」の、「BOOL EnableMenuItem(DWORD,int,int)」を、「?,?,?」の、「API_EnableMenuItem」として、DLLを利用。
オプションフォームを、作る。
   その、スタイルは、ダイアログスタイル。
   その、可視は、オフ。
   その、背景色は、ウインドウ色。
   その、幅は、400。その、高さは、250。
   その、テキストは、「表示設定」。
文字サイズ=11。
(10,10)に、色設定ラベルを、作る。
   そを、オプションフォームに、乗せる。
   その、幅は、380。
   その、高さは、80。
   その、透過処理は、オフ。
   その、背景色は、白色。
(25,30)に、色0ボタンを、作る。
   そを、オプションフォームに、乗せる。
   その、フォントサイズは、10。
   その、テキストは、「平日」。
   その、フォント色は、黒色。
   その、イベントは、(
      色選択。
      色0ボタンの、フォント色は、それ。
      F色0=それ。
   )
(120,30)に、色2ボタンを、作る。
   そを、オプションフォームに、乗せる。
   その、フォントサイズは、10。
   その、テキストは、「土曜」。
   その、フォント色は、青色。
   その、イベントは、(
      色選択。
      色2ボタンの、フォント色は、それ。
      F色2=それ。
   )
(215,30)に、色1ボタンを、作る。
   そを、オプションフォームに、乗せる。
   その、フォントサイズは、10。
   その、テキストは、「日曜」。
   その、フォント色は、赤色。
   その、イベントは、(
      色選択。
      色1ボタンの、フォント色は、それ。
      F色1=それ。
   )
(310,30)に、色3ボタンを、作る。
   そを、オプションフォームに、乗せる。
   その、フォントサイズは、10。
   その、テキストは、「祝日」。
   その、フォント色は、赤色。
   その、イベントは、(
      色選択。
      色3ボタンの、フォント色は、それ。
      F色3=それ。
   )
(25,65)に、枠表示チェックを、作る。
   そを、オプションフォームに、乗せる。
   その、テキストは、「今日のところに枠をつける」。
   その、幅は、250。
   その、値は、オフ。
   その、イベントは、(
      もし、(枠表示チェックの、値)=オンならば、枠C=1。
      違えば、枠C=0。
   )
(310,60)に、色4ボタンを、作る。
   そを、オプションフォームに、乗せる。
   その、フォントサイズは、10。
   その、テキストは、「今日の枠」。
   その、フォント色は、緑色。
   その、イベントは、(
      色選択。
      色4ボタンの、フォント色は、それ。
      F色4=それ。
   )
(10,100)に、表示月数ラベルを、作る。
   そを、オプションフォームに、乗せる。
   その、幅は、380。
   その、透過処理は、オフ。
   その、背景色は、白色。
(100,100)に、表示月数コンボを、作る。
   そを、オプションフォームに、乗せる。
   その、幅は、100。
   その、アイテムは、「1ヶ月\n2ヶ月\n3ヶ月\n6ヶ月\n12ヶ月\n年間\n年度」
   その、値は、0。
   その、イベントは、(
      (表示月数コンボの、値)で、条件分岐。
         0の時、F月数=「1ヶ月」。
         1の時、F月数=「2ヶ月」。
         2の時、F月数=「3ヶ月」。
         3の時、F月数=「6ヶ月」。
         4の時、F月数=「12ヶ月」。
         5の時、F月数=「年間表示」。
         6の時、F月数=「年度表示」。
   )
(10,130)に、フォントサイズラベルを、作る。
   そを、オプションフォームに、乗せる。
   その、幅は、380。
   その、透過処理は、オフ。
   その、背景色は、白色。
(120,130)に、フォントサイズエディタを、作る。
   そを、オプションフォームに、乗せる。
   その、幅は、50。
   その、テキストは、「12」。
   その、イベントは、(
      (フォントサイズエディタの、テキスト)を、"%f"の、指定形式に変換。
      Fフォント=それ。
   )
(10,160)に、曜日設定ラベルを、作る。
   そを、オプションフォームに、乗せる。
   その、幅は、380。
   その、透過処理は、オフ。
   その、背景色は、白色。
(100,160)に、曜日設定コンボを、作る。
   そを、オプションフォームに、乗せる。
   その、幅は、250。
   その、アイテムは、「日,月,火,水,木,金,土\nS,M,T,W,T,F,S\nSun,Mon,Tue,Wed,Thu,Fri,Sat\nD,L,M,M,J,V,S\nDim,Lun,Mar,Mer,Jeu,Ven,Sam\nS,M,D,M,D,F,S\nSon,Mon,Die,Mit,Don,Fre,Sam\n休,平,平,平,平,平,休\n復,元,懸,中,疲,倒,休」。
   その、値は、0。
   その、イベントは、(
      (曜日設定コンボの、値)で、条件分岐。
         0の時、F曜日=「日,月,火,水,木,金,土」。
         1の時、F曜日=「S,M,T,W,T,F,S」。
         2の時、F曜日=「Sun,Mon,Tue,Wed,Thu,Fri,Sat」。
         3の時、F曜日=「D,L,M,M,J,V,S」。
         4の時、F曜日=「Dim,Lun,Mar,Mer,Jeu,Ven,Sam」。
         5の時、F曜日=「S,M,D,M,D,F,S」。
         6の時、F曜日=「Son,Mon,Die,Mit,Don,Fre,Sam」。
         7の時、F曜日=「休,平,平,平,平,平,休」。
         8の時、F曜日=「復,元,懸,中,疲,倒,休」。
   )
(20,200)に、デフォルトボタンを、作る。
   そを、オプションフォームに、乗せる。
   その、イベントは(
      色0ボタンの、フォント色を、黒色に、設定。F色0=黒色。
      色1ボタンの、フォント色を、赤色に、設定。F色1=赤色。
      色2ボタンの、フォント色を、青色に、設定。F色2=青色。
      色3ボタンの、フォント色を、赤色に、設定。F色3=赤色。
      色4ボタンの、フォント色を、緑色に、設定。F色4=緑色。
      枠表示チェックの、値を、オンに、設定。枠C=1。
      表示月数コンボの、値を、0に、設定。F月数=「1ヶ月」。
      曜日設定コンボの、値を、0に、設定。F曜日=「日,月,火,水,木,金,土」。
      フォントサイズエディタの、テキストを、「12」に、設定。Fフォント=12。
   )
(220,200)に、OKボタンを、作る。
   そを、オプションフォームに、乗せる。
   その、イベントは(
      色0=F色0。それは、色0。
      「色設定」の、「色0」へ、INIファイル書く。
      色1=F色1。それは、色1。
      「色設定」の、「色1」へ、INIファイル書く。
      色2=F色2。それは、色2。
      「色設定」の、「色2」へ、INIファイル書く。
      色3=F色3。それは、色3。
      「色設定」の、「色3」へ、INIファイル書く。
      色4=F色4。それは、色4。
      「色設定」の、「色4」へ、INIファイル書く。
      週=F曜日。それは、週。
      「表示設定」の、「週表示」へ、INIファイル書く。
      今日表示=枠C。それは、今日表示。
      「表示設定」の、「今日表示」へ、INIファイル書く。
      表示月数=F月数。それは、表示月数。
      「表示設定」の、「表示月数」へ、INIファイル書く。
      fontsize=Fフォント。それは、fontsize。
      「表示設定」の、「フォントサイズ」へ、INIファイル書く。
      オプションフォームの、可視は、オフ。
      母艦の、有効は、オン。
      文字サイズ=12。
      メインへ、飛ぶ。
   )
(300,200)に、キャンセルボタンを、作る。
   そを、オプションフォームに、乗せる。
   その、イベントは(
      オプションフォームの、可視は、オフ。
      母艦の、有効は、オン。
      文字サイズ=12。
   )
システムメニューのハンドル=API_GetSystemMenu((オプションフォームの、ハンドル),0)
API_EnableMenuItem(システムメニューのハンドル,$F060,1)

*コントロールパネル
コントロールフォームを、作る。
   その、スタイルは、ダイアログスタイル。
   その、可視は、オン。
   その、テキストは、「操作パネル」。
   その、幅は、120。
   その、高さは、200。
文字サイズ=10。
(10,10)に、任意月エディタを、作る。
   そを、コントロールフォームに、乗せる。
   その、幅は、80。
(90,10)に、Goボタンを、作る。
   そを、コントロールフォームに、乗せる。
   その、幅は、20。
   その、イベントは(
      それは、(任意月エディタの、テキスト)。
      もし、それ=「」ならば、待機。
      もし、文字数(それ)=7でなければ、待機。
      今月=それ&「/01」。
      メインへ、飛ぶ。
   )
(5,50)に、前年ボタンを、作る。
   そを、コントロールフォームに、乗せる。
   その、幅は、20。
   その、テキストは、「≪」。
   その、イベントは(
      今月=日付加算(今月,「-1/0/0」)。
      メインへ、飛ぶ。
   )
(27,50)に、前月ボタンを、作る。
   そを、コントロールフォームに、乗せる。
   その、幅は、20。
   その、テキストは、「<」。
   その、イベントは(
      今月=日付加算(今月,「-0/1/0」)。
      メインへ、飛ぶ。
   )
(50,50)に、現在月ボタンを、作る。
   そを、コントロールフォームに、乗せる。
   その、幅は、20。
   その、テキストは、「○」。
   その、イベントは(
      今月=LEFT(今日,8)&「01」。
      メインへ、飛ぶ。
   )
(73,50)に、来月ボタンを、作る。
   そを、コントロールフォームに、乗せる。
   その、幅は、20。
   その、テキストは、「>」。
   その、イベントは(
      今月=日付加算(今月,「0/1/0」)。
      メインへ、飛ぶ。
   )
(95,50)に、来年ボタンを、作る。
   そを、コントロールフォームに、乗せる。
   その、幅は、20。
   その、テキストは、「≫」。
   その、イベントは(
      今月=日付加算(今月,「1/0/0」)。
      メインへ、飛ぶ。
   )
(20,120)に、方法ラベルを、作る。
   そを、コントロールフォームに、乗せる。
   その、テキストは、「≪:1年戻る\n<:1ヶ月戻る\n○:現在月\n>:1ヶ月進む\n≫:1年進む\nGo:記した月へ」。
システムメニューのハンドル=API_GetSystemMenu((コントロールフォームの、ハンドル),0)
API_EnableMenuItem(システムメニューのハンドル,$F060,1)

*タイトル
母艦の、タイトルは、「Y'sカレンダー」
母艦の、リサイズは、オフ。
「YsCalendar.ini」の、INIファイル開く。
今月=LEFT(今日,8)&「01」。
「色設定」の、「色0」を、INIファイル読む。
色0=それ。'平日
「色設定」の、「色1」を、INIファイル読む。
色1=それ。'休日
「色設定」の、「色2」を、INIファイル読む。
色2=それ。'土曜日
「色設定」の、「色3」を、INIファイル読む。
色3=それ。'祝日
「色設定」の、「色4」を、INIファイル読む。
色4=それ。'今日の枠
「表示設定」の、「週表示」を、INIファイル読む。
週=それ。'曜日の表示
「表示設定」の、「今日表示」を、INIファイル読む。
今日表示=それ。'今日の枠
「表示設定」の、「表示月数」を、INIファイル読む。
表示月数=それ。'表示する月の数
「表示設定」の、「フォントサイズ」を、INIファイル読む。
fontsize=それ。'フォントサイズ
nを、1から、9まで、繰り返す(
   「記念日」の、「特定日#{n}」を、INIファイル読む。
   特定日#n=それ。
   「記念日」の、「特定日色#{n}」を、INIファイル読む。
   特定日色#n=それ。
)。
nを、1から、9まで、繰り返す(
   「記念日」の、「毎年事#{n}」を、INIファイル読む。
   毎年事#n=それ。
   「記念日」の、「毎年事色#{n}」を、INIファイル読む。
   毎年事色#n=それ。
)。
nを、1から、5まで、繰り返す(
   「記念日」の、「毎月事#{n}」を、INIファイル読む。
   毎月事#n=それ。
   「記念日」の、「毎月事色#{n}」を、INIファイル読む。
   毎月事色#n=それ。
)。

{▲続く}



▲[ 59 ] / 返信無し
NO.60  Y'sカレンダー ver1.21(後編)
□投稿者/ Yosshy -(2002/09/10(Tue) 13:36:01)
□U R L/ http://www.aa.alpha-net.ne.jp/yosshy4/yosshy/top.html
{▼続き}
*メニュー
設定メニューを、メニュー作成。
   その、テキストは、「&Control」。
設定メニューに、表示設定メニューを、メニュー追加。
   その、テキストは、「表示設定」。その、ショートカットキーは、「Ctrl+S」。
   その、イベントは、(
      色0ボタンの、フォント色を、色0に、設定。F色0=色0。
      色1ボタンの、フォント色を、色1に、設定。F色1=色1。
      色2ボタンの、フォント色を、色2に、設定。F色2=色2。
      色3ボタンの、フォント色を、色3に、設定。F色3=色3。
      色4ボタンの、フォント色を、色4に、設定。F色4=色4。
      もし、今日表示=1ならば、(枠表示チェックの、値を、オンに、設定。)
      違えば、(枠表示チェックの、値を、オフに、設定。)
      枠C=今日表示。
      表示月数で、条件分岐。
         「1ヶ月」の時、(表示月数コンボの、値を、0に、設定。)
         「2ヶ月」の時、(表示月数コンボの、値を、1に、設定。)
         「3ヶ月」の時、(表示月数コンボの、値を、2に、設定。)
         「6ヶ月」の時、(表示月数コンボの、値を、3に、設定。)
         「12ヶ月」の時、(表示月数コンボの、値を、4に、設定。)
         「年間表示」の時、(表示月数コンボの、値を、5に、設定。)
         「年度表示」の時、(表示月数コンボの、値を、6に、設定。)
      F月数=表示月数。
      週で、条件分岐。
         「日,月,火,水,木,金,土」の時、(曜日設定コンボの、値を、0に、設定。)
         「S,M,T,W,T,F,S」の時、(曜日設定コンボの、値を、1に、設定。)
         「Sun,Mon,Tue,Wed,Thu,Fri,Sat」の時、(曜日設定コンボの、値を、2に、設定。)
         「D,L,M,M,J,V,S」の時、(曜日設定コンボの、値を、3に、設定。)
         「Dim,Lun,Mar,Mer,Jeu,Ven,Sam」の時、(曜日設定コンボの、値を、4に、設定。)
         「S,M,D,M,D,F,S」の時、(曜日設定コンボの、値を、5に、設定。)
         「Son,Mon,Die,Mit,Don,Fre,Sam」の時、(曜日設定コンボの、値を、6に、設定。)
         「休,平,平,平,平,平,休」の時、(曜日設定コンボの、値を、7に、設定。)
         「復,元,懸,中,疲,倒,休」の時、(曜日設定コンボの、値を、8に、設定。)
      F曜日=週。
      フォントサイズエディタの、テキストを、「{fontsize}」に、設定。
      Fフォント=fontsize。
      母艦の、有効は、オフ。
      オプションフォームの、可視は、オン。
   )
設定メニューに、記念日メニューを、メニュー追加。
   その、テキストは、「記念日設定」。
   記念日メニューに、特定日メニューを、メニュー追加。
      その、テキストは、「特定日設定」。
      特定日メニューに、特定1メニューを、メニュー追加。
         その、テキストは、「&1:{特定日#1}」。
         その、イベントは(n=1。特定年月日へ、飛ぶ。)
      特定日メニューに、特定2メニューを、メニュー追加。
         その、テキストは、「&2:{特定日#2}」。
         その、イベントは(n=2。特定年月日へ、飛ぶ。)
      特定日メニューに、特定3メニューを、メニュー追加。
         その、テキストは、「&3:{特定日#3}」。
         その、イベントは(n=3。特定年月日へ、飛ぶ。)
      特定日メニューに、特定4メニューを、メニュー追加。
         その、テキストは、「&4:{特定日#4}」。
         その、イベントは(n=4。特定年月日へ、飛ぶ。)
      特定日メニューに、特定5メニューを、メニュー追加。
         その、テキストは、「&5:{特定日#5}」。
         その、イベントは(n=5。特定年月日へ、飛ぶ。)
      特定日メニューに、特定6メニューを、メニュー追加。
         その、テキストは、「&6:{特定日#6}」。
         その、イベントは(n=6。特定年月日へ、飛ぶ。)
      特定日メニューに、特定7メニューを、メニュー追加。
         その、テキストは、「&7:{特定日#7}」。
         その、イベントは(n=7。特定年月日へ、飛ぶ。)
      特定日メニューに、特定8メニューを、メニュー追加。
         その、テキストは、「&8:{特定日#8}」。
         その、イベントは(n=8。特定年月日へ、飛ぶ。)
      特定日メニューに、特定9メニューを、メニュー追加。
         その、テキストは、「&9:{特定日#9}」。
         その、イベントは(n=9。特定年月日へ、飛ぶ。)
   記念日メニューに、毎年事メニューを、メニュー追加。
      その、テキストは、「毎年事設定」。
      毎年事メニューに、毎年1メニューを、メニュー追加。
         その、テキストは、「&1:{毎年事#1}」。
         その、イベントは(n=1。毎年特定日へ、飛ぶ。)
      毎年事メニューに、毎年2メニューを、メニュー追加。
         その、テキストは、「&2:{毎年事#2}」。
         その、イベントは(n=2。毎年特定日へ、飛ぶ。)
      毎年事メニューに、毎年3メニューを、メニュー追加。
         その、テキストは、「&3:{毎年事#3}」。
         その、イベントは(n=3。毎年特定日へ、飛ぶ。)
      毎年事メニューに、毎年4メニューを、メニュー追加。
         その、テキストは、「&4:{毎年事#4}」。
         その、イベントは(n=4。毎年特定日へ、飛ぶ。)
      毎年事メニューに、毎年5メニューを、メニュー追加。
         その、テキストは、「&5:{毎年事#5}」。
         その、イベントは(n=5。毎年特定日へ、飛ぶ。)
      毎年事メニューに、毎年6メニューを、メニュー追加。
         その、テキストは、「&6:{毎年事#6}」。
         その、イベントは(n=6。毎年特定日へ、飛ぶ。)
      毎年事メニューに、毎年7メニューを、メニュー追加。
         その、テキストは、「&7:{毎年事#7}」。
         その、イベントは(n=7。毎年特定日へ、飛ぶ。)
      毎年事メニューに、毎年8メニューを、メニュー追加。
         その、テキストは、「&8:{毎年事#8}」。
         その、イベントは(n=8。毎年特定日へ、飛ぶ。)
      毎年事メニューに、毎年9メニューを、メニュー追加。
         その、テキストは、「&9:{毎年事#9}」。
         その、イベントは(n=9。毎年特定日へ、飛ぶ。)
   記念日メニューに、毎月事メニューを、メニュー追加。
      その、テキストは、「毎月事設定」。
      毎月事メニューに、毎月1メニューを、メニュー追加。
         その、テキストは、「&1:{毎月事#1}」。
         その、イベントは(n=1。毎月特定日へ、飛ぶ。)
      毎月事メニューに、毎月2メニューを、メニュー追加。
         その、テキストは、「&2:{毎月事#2}」。
         その、イベントは(n=2。毎月特定日へ、飛ぶ。)
      毎月事メニューに、毎月3メニューを、メニュー追加。
         その、テキストは、「&3:{毎月事#3}」。
         その、イベントは(n=3。毎月特定日へ、飛ぶ。)
      毎月事メニューに、毎月4メニューを、メニュー追加。
         その、テキストは、「&4:{毎月事#4}」。
         その、イベントは(n=4。毎月特定日へ、飛ぶ。)
      毎月事メニューに、毎月5メニューを、メニュー追加。
         その、テキストは、「&5:{毎月事#5}」。
         その、イベントは(n=5。毎月特定日へ、飛ぶ。)
設定メニューに、区切り線4を、メニュー追加。
   その、テキストは、「-」。
設定メニューに、印刷メニューを、メニュー追加。
   その、テキストは、「印刷」。その、ショートカットキーは、「Ctrl+P」。
   その、イベントは(
      *プリント
      母艦印刷。
   )
設定メニューに、保存メニューを、メニュー追加。
   その、テキストは、「保存」。その、ショートカットキーは、「Ctrl+F」。
   その、イベントは(
      *画像として保存
      ダイアログ初期値=「」。
      ダイアログキャンセルの値=「」。
      「ビットマップ形式 (*.bmp)(推奨)|*.bmp|PNG形式 (*.png)|*.png|JPEG形式 (*.jpg)|*.jpg|全てのファイル (*.*)|*.*」の、書込ファイル選択。
      もし、それが、「」でなければ、(
         それへ、母艦を、イメージ保存。
      )
      とりあえずへ、飛ぶ。
   )
設定メニューに、区切り線5を、メニュー追加。
   その、テキストは、「-」。
設定メニューに、バージョンメニューを、メニュー追加。
   その、テキストは、「バージョン」。
   その、イベントは(
      文字サイズ=10。
      「Y'sカレンダー ver.1.21\n (c)Yosshy」と、言う。
      文字サイズ=12。
   )
設定メニューに、ヘルプメニューを、メニュー追加。
   その、テキストは、「ヘルプ」。その、ショートカットキーは、「F1」。
   その、イベントは(
      「Y'sカレンダー.txt」を、起動。
   )
設定メニューに、終了メニューを、メニュー追加。
   その、テキストは、「終了」。その、ショートカットキーは、「Alt+X」。
   その、イベントは(
      *ENDE
      「終了しますか」と、二択。
      もし、それが、はいならば、(INIファイル閉じる。終わり。)
   )
システムメニューのハンドル=API_GetSystemMenu((母艦の、ハンドル),0)
API_EnableMenuItem(システムメニューのハンドル,$F060,1)

*メイン
画面クリア。
全体表示を、呼ぶ。
*とりあえず
文字色=黒色。
文字サイズ=12。
待機。

*特定年月日
ダイアログキャンセルの値=「」。
ダイアログ初期値=特定日#n。
「特定年月日を入力してください。(例:2002/06/30)」と、尋ねる。
もし、それ=「」ならば、(
「記念日」の、「特定日#{n}」へ、INIファイル書く。
特定日#n=それ。
それは、白色。
「記念日」の、「特定日色#{n}」へ、INIファイル書く。
特定日色#n=それ。
メインへ、飛ぶ)。
もし、文字数(それ)=10でなければ、待機。
「記念日」の、「特定日#{n}」へ、INIファイル書く。
特定日#n=それ。
ダイアログキャンセルの値=#FFFFFF。
ダイアログ初期値=特定日色#n。
「背景色を選んでください」と、言って、色選択。
「記念日」の、「特定日色#{n}」へ、INIファイル書く。
特定日色#n=それ。
メインへ、飛ぶ。

*毎年特定日
ダイアログキャンセルの値=「」。
ダイアログ初期値=毎年事#n。
「特定月日を入力してください。(例:08/15)」と、尋ねる。
もし、それ=「」ならば、(
「記念日」の、「毎年事#{n}」へ、INIファイル書く。
毎年事#n=それ。
それは、白色。
「記念日」の、「毎年事色#{n}」へ、INIファイル書く。
毎年事色#n=それ。
メインへ、飛ぶ)。
もし、文字数(それ)=5でなければ、待機。
「記念日」の、「毎年事#{n}」へ、INIファイル書く。
毎年事#n=それ。
ダイアログキャンセルの値=#FFFFFF。
ダイアログ初期値=毎年事色#n。
「背景色を選んでください」と、言って、色選択。
「記念日」の、「毎年事色#{n}」へ、INIファイル書く。
毎年事色#n=それ。
メインへ、飛ぶ。

*毎月特定日
ダイアログキャンセルの値=「」。
ダイアログ初期値=毎月事#n。
「特定日を入力してください。(例:01)」と、尋ねる。
もし、それ=「」ならば、(
「記念日」の、「毎月事#{n}」へ、INIファイル書く。
毎月事#n=それ。
それは、白色。
「記念日」の、「毎月事色#{n}」へ、INIファイル書く。
毎月事色#n=それ。
メインへ、飛ぶ)。
もし、文字数(それ)=2でなければ、待機。
「記念日」の、「毎月事#{n}」へ、INIファイル書く。
毎月事#n=それ。
ダイアログキャンセルの値=#FFFFFF。
ダイアログ初期値=毎月事色#n。
「背景色を選んでください」と、言って、色選択。
「記念日」の、「毎月事色#{n}」へ、INIファイル書く。
毎月事色#n=それ。
メインへ、飛ぶ。

*全体表示
calw=INT(fontsize*15);calh=INT(fontsize*13.5)
表示月数で、条件分岐。
   「1ヶ月」の時、(横=1。縦=1。カレンダー表示を、呼ぶ)。
   「2ヶ月」の時、(横=2。縦=1。カレンダー表示を、呼ぶ)。
   「3ヶ月」の時、(横=3。縦=1。カレンダー表示を、呼ぶ)。
   「6ヶ月」の時、(横=3。縦=2。カレンダー表示を、呼ぶ)。
   「12ヶ月」の時、(横=4。縦=3。カレンダー表示を、呼ぶ)。
   「年間表示」の時、(横=4。縦=3。カレンダー表示を、呼ぶ)。
   「年度表示」の時、(横=4。縦=3。カレンダー表示を、呼ぶ)。
戻る。

*カレンダー表示
母艦の、幅は、calw*横。
母艦の、高さは、calh*縦。
当月=今月。
表示月数で、条件分岐。
   「年間表示」の時、(今月=LEFT(今月,5)&「01/01」。)
   「年度表示」の時、(今月=日付加算(今月,「-0/3/0」)。今月=LEFT(今月,5)&「04/01」。)
縦回(SY=回数。
   横回(SX=回数。
      SW=(SX-1)*calw。SH=(SY-1)*calh。
      日数設定を、呼ぶ。
      今月=日付加算(今月,「0/1/0」)。
   )
)
今月=当月。
戻る。

*日数設定
今月を、「/」で、区切る。
Yr=それ#0。M=それ#1。
日数=「31\n28\n31\n30\n31\n30\n31\n31\n30\n31\n30\n31」
もし、Yr%400=0ならば、日数#1="29"。
違えば(もし、Yr%100=0ならば、日数#1="28"。
   違えば(もし、Yr%4=0ならば、日数#1="29"。
     違えば、日数#1="28"。
   )。
)。
D=日数#(M-1)。
Men=「January\nFebruary\nMarch\nApril\nMay\nJune\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember」。'英語の月表示設定
Mfr=「Janvier\nFevrier\nMars\nAvril\nMai\nJuin\nJuillet\nAout\nSeptembre\nOctobre\nNovembre\nDecembre」。'フランス語の月表示設定
Mge=「Januar\nFebruar\nMarz\nApril\nMai\nJuni\nJuli\nAugust\nSeptember\nOktober\nNovember\nDezember」。'ドイツ語の月表示設定
'ここよりカレンダーの表示
(SW+7,SH+5)へ、移動。
文字色=色0。
文字サイズ=fontsize。
週初め=週#0#0。
週初めで、条件分岐。
   「日」の時、(「{Yr}年{M}月」と、表示。)。
   「S」の時、(「{Yr}年{M}月」と、表示。)。
   「Sun」の時、(「{Men#(M-1)} {Yr}」と、表示。)。
   「D」の時、(「{Yr}年{M}月」と、表示。)。
   「Dim」の時、(「{Mfr#(M-1)} {Yr}」と、表示。)。
   「Son」の時、(「{Mge#(M-1)} {Yr}」と、表示。)。
   「休」の時、(「{Yr}年{M}月」と、表示。)。
   「復」の時、(「{Yr}年{M}月」と、表示。)。
xサイズ=INT(fontsize*2.1);yサイズ=INT(fontsize*1.7);x=SW+5;y=SH+xサイズ
lx=INT(xサイズ/10);ly=INT(yサイズ/10)
7回(
   回数で、条件分岐。
      1の時(文字色=色1)
      7の時(文字色=色2)
      その他の時(文字色=色0)
   (x,y)へ、移動。
   (右寄せ(週#(回数-1)#0,2))と、表示。
   x=x+xサイズ。
)
月曜判定=0
x=SW+5;y=y+yサイズ
D回(
  本日=日付加算(今月,「0/0/{回数-1}」)。
   当日=本日。
  DAY=曜日を数値で得る(本日)。
   もし、DAY=2ならば、(月曜判定=月曜判定+1)
  DAYで、条件分岐。
      1の時(字色=1)
      7の時(字色=2)
      その他の時(字色=0)
   祝日判定を、呼ぶ。
  字色で、条件分岐。
      1の時(文字色=色1)
      2の時(文字色=色2)
      3の時(文字色=色3)
      その他の時(文字色=色0)
  本日=RIGHT(本日,2)
  もし、LEFT(本日,1)=0ならば、本日=RIGHT(本日,1)
  本日=右寄せ(本日,2)。
  もし、回数=1ならば、x=x+(DAY-1)*xサイズ。
  (x,y)へ、移動。
   ペン色=白色。
   塗り色=白色。
   nを、1から、5まで、繰り返す(もし、RIGHT(月日,2)=毎月事#nならば、塗り色=毎月事色#n。)。
   nを、1から、9まで、繰り返す(もし、月日=毎年事#nならば、塗り色=毎年事色#n。)。
   nを、1から、9まで、繰り返す(もし、当日=特定日#nならば、塗り色=特定日色#n。)。
   もし、今日表示=1ならば、(
      もし、同じ日=1ならば、(ペン色=色4。)
   )
   ペン太さ=INT(fontsize*0.15)。
   (x-lx,y-ly)から、(x-lx+yサイズ,y-ly+yサイズ)へ、四角形。
   本日と、表示。
  x=x+xサイズ。もし、DAY%7=0ならば、(x=SW+5;y=y+yサイズ)
)
戻る。

*祝日判定
'休日は1、祝日は3、今日は4
月日=RIGHT(本日,5)
春分=INT(20.8431+0.242194*(Yr-1980)-INT((Yr-1980)/4))
秋分=INT(23.2488+0.242194*(Yr-1980)-INT((Yr-1980)/4))
'その日判定
同じ日=0
もし、(本日=今日)ならば、(同じ日=1)。
'固定の祝日
月日で、条件分岐。
   「01/01」の時、字色=3
   「02/11」の時、字色=3
   「03/{春分}」の時、字色=3
   「04/29」の時、字色=3
   「05/03」の時、字色=3
   「05/05」の時、字色=3
   「09/{秋分}」の時、字色=3
   「11/03」の時、字色=3
   「11/23」の時、字色=3
   「12/23」の時、字色=3
   「05/04」の時、字色=3
もし、DAY=2ならば、(
   月日で、条件分岐。
      「01/02」の時、字色=1
      「02/12」の時、字色=1
      「03/{春分+1}」の時、字色=1
      「04/30」の時、字色=1
      「05/04」の時、字色=1
      「05/06」の時、字色=1
      「09/{秋分+1}」の時、字色=1
      「11/04」の時、字色=1
      「11/24」の時、字色=1
      「12/24」の時、字色=1
)
もし、DAY=1ならば、(
   月日で、条件分岐。
      「05/04」の時、字色=1
)
'2000年からのハッピーマンデー対応
もし、Yr<2000ならば、(
   月日で、条件分岐。
      「01/15」の時、字色=3
      「10/10」の時、字色=3
   もし、DAY=2ならば、(
      月日で、条件分岐。
         「01/16」の時、字色=1
         「10/11」の時、字色=1
   )
)
違えば、(
   もし、月曜判定=2ならば、(
      もし、DAY=2ならば、(
         Mで、条件分岐。
            「01」の時、字色=3
            「10」の時、字色=3
      )
   )
)
'2003年からのハッピーマンデー対応(敬老の日)
もし、Yr<2003ならば、(
   月日で、条件分岐。
      「09/15」の時、字色=3
   もし、DAY=2ならば、(
      月日で、条件分岐。
         「09/16」の時、字色=1
   )
)
違えば、(
   もし、月曜判定=3ならば、(
      もし、DAY=2ならば、(
         Mで、条件分岐。
            「09」の時、字色=3
      )
      もし、DAY=3ならば、(
         月日で、条件分岐。
            「09/{秋分-1}」の時、字色=3
      )
   )
)
'2003年からのハッピーマンデー対応(海の日)
もし、Yr>1995ならば、(
   もし、Yr<2003ならば、(
      月日で、条件分岐。
         「07/20」の時、字色=3
      もし、DAY=2ならば、(
         月日で、条件分岐。
            「07/21」の時、字色=1
      )
   )
   違えば、(
      もし、月曜判定=3ならば、(
         もし、DAY=2ならば、(
            Mで、条件分岐。
               「07」の時、字色=3
         )
      )
   )
)
戻る。
{▲ここまで}



- Child Tree -