[2139] 長いですが…

投稿日 2018/06/30(Sat) 20:00:15
投稿者 アーク info_nds-laboあっとまーくexcite.co.jp
参照先

ゆうとさん、こんばんは。アークです。

分かり難くて申し訳ありません。

作りたいのはDOS時代のPIMです。
時計やカレンダ、電卓など個々のアイテムはできたのですが、
それをMDIで管理したいと考えています。

長いですがよろしくお願いします。
先ずは親の方からです。
--------------------------------------
// MDIウィンドウ //
「時計ライブラリ.rdr」を参照する

マネージャー画面を表示する
待機する

マネージャー画面とは
  ウィンドウを継承する
  +カウント

はじめの手順
  初期化する
  カウントは、1
  マネージャーを表示する
  //マネージャー画面の内部領域大きさを表示する
終わり

初期化する手順
  //自動生成された手順です。ここにプログラムを書き加えても消える場合があります
  この内部領域大きさを{266,517}に変える
  この種類を「縁無し」に変える
  この初期位置を「手動」に変える
  このMDIコンテナを○に変える
  この内容を「Manager」に変える
  このドラッグドロップを○に変える
  メニュー1というメニューを作る
    その位置と大きさを{0,0,266,24}に変える
    その内容を「メニュー1」に変える
    その移動順を1に変える
    ファイルメニュー項目というメニュー項目をメニュー1へ追加する
      その表示を○に変える
      その内容を「ファイル(&F)」に変える
      新規メニュー項目というメニュー項目をメニュー1のファイルメニュー項目へ追加する
        その内容を「新規(&N)」に変える
      区切りという区切り線部品をメニュー1のファイルメニュー項目へ追加
        その大きさを{116,6}に変える
      閉じるメニュー項目というメニュー項目をメニュー1のファイルメニュー項目へ追加する
        その内容を「閉じる(&C)」に変える
    ウィンドウメニュー項目というメニュー項目をメニュー1へ追加する
      その表示を○に変える
      その内容を「ウィンドウ(&W)」に変える
終わり

マネージャーを表示する時の手順
  メインディスプレイは、画面の1番目を取得したもの
  画面全体は、{メインディスプレイの幅,メインディスプレイの高さ}
  有効領域は、メインディスプレイの作業領域
  X=画面全体(1)-258
  Y=0
  W=264
  //H=有効領域(4)
  H=画面全体(2)-30
  マネージャー画面の位置と大きさを{X,Y,W,H}に変える
  マネージャー画面の内部領域大きさを{248,1020}に変える
  //{X,Y,W,H}を表示する
  //マネージャー画面の内部領域大きさを表示する
終わり

新規メニュー項目がクリックされた時の手順
  子ウィンドウを増やす
  //子ウィンドウを作って子とする
  //子のMDI親ウィンドウは、マネージャー画面
終わり

閉じるメニュー項目がクリックされた時の手順
  終了する
終わり

【自分】で、子ウィンドウを、増やす手順
  子ウィンドウを作って子とする
  対象は、それ
  子のMDI親ウィンドウは、マネージャー画面
  子の名前は、「子ウィンドウ[カウント]」
  子の名前は、「アナログ時計」
  子の内容は、「時計」
  子を表示する
  カウントを増やす
  アナログ時計を表示する

  //メニューを更新する
終わり

  //メニューを、更新する手順
  //  ウィンドウメニュー項目をすべて消す
  //  MDI子ウィンドウ一覧のすべての要素についてそれぞれ繰り返す
  //    メニュー項目をメニュー1のウィンドウメニュー項目へ追加する
  //      その内容を要素の内容に変える
  //      そのクリックされた時の手順は、ウィンドウ選択
  //  繰り返し終わり
  //終わり

  ウィンドウ選択の手順
    MDI子ウィンドウ一覧のすべての要素についてそれぞれ繰り返す
      もし要素の内容が発生元の内容なら
        要素を選択する
        繰り返しから抜ける
      もし終わり
    繰り返し終わり
  終わり
終わり

子ウィンドウとは
  ウィンドウを継承する

  はじめの手順
    初期化する
  終わり

  初期化する手順
    //自動生成された手順です。ここにプログラムを書き加えても消える場合があります
    この内部領域大きさを{228,219}に変える
    この初期位置を「手動」に変える
    この内容を「子ウィンドウ」に変える
    このドラッグドロップを○に変える
    
  終わり
終わり
--------------------------------------
次に子の方です。
--------------------------------------
素材として「Model-3.png」を利用する
//アナログ時計を表示する
//待機する

アナログ時計とは
  ウィンドウを継承する
  はじめの手順
    //設定ファイルを読み込む
    //位置Xを表示する
    //位置Yを表示する
    //秒表示を表示する
    初期化する
    //貼り付けた部品に対する操作をここに書きます
    タイマー1というタイマーを作る
    現在の時刻を取得する
    もし秒表示が「はい」ならば
      タイマー1の時間になった時の手順は、時を刻む
      タイマー1の間隔を990に変える
      針を動かす
      タイマー1を開始する
    そうでなければ
      タイマー2というタイマーを作る
      タイマー2の間隔を[(60-現在秒)*1000]に変える
      タイマー2の時間になった時の手順は、時間が来た
      針を動かす
      タイマー2を開始する
    もし終わり
  終わり
  
  初期化する手順
  //自動生成された手順です。ここにプログラムを書き加えても消える場合があります
  このMDIコンテナを○に変える
  この内容を「アナログ時計」に変える
  キャンバス1というキャンバスを作る
    その位置と大きさを{0,0,248,248}に変える
    その背景画像を「M:\MyAppData\Produire\MyProjects\Gadget Manager\Model-3.png」に変える
    その位置固定方向を「右+左+下+上」に変える
終わり

  設定ファイルを読み込む時の手順
    初期化ファイルという設定ファイルを作る
    初期化ファイルのファイル名は、「MyClock.ini」
    初期化ファイルについて「窓」から「座標X」を取得して位置Xとする
    初期化ファイルについて「窓」から「座標Y」を取得して位置Yとする
    初期化ファイルについて「窓」から「透明度」を「70」で取得して窓透明度とする
    初期化ファイルについて「窓」から「窓枠」を取得して枠種類とする
    初期化ファイルについて「窓」から「スキン」を「Model-1.png」で取得して外観とする
    初期化ファイルについて「時計」から「時針の長さ」を取得して短針長とする
    初期化ファイルについて「時計」から「時針の太さ」を取得して短針幅とする
    初期化ファイルについて「時計」から「時針の形状」を取得して短針形とする
    初期化ファイルについて「時計」から「時針の色」を取得して短針色とする
    初期化ファイルについて「時計」から「分針の長さ」を取得して長針長とする
    初期化ファイルについて「時計」から「分針の太さ」を取得して長針幅とする
    初期化ファイルについて「時計」から「分針の形状」を取得して長針形とする
    初期化ファイルについて「時計」から「分針の色」を取得して長針色とする
    初期化ファイルについて「時計」から「秒針の表示」を取得して秒表示とする
    初期化ファイルについて「時計」から「秒針の中心」を取得して秒中心とする
    初期化ファイルについて「時計」から「秒針の長さ」を取得して秒針長とする
    初期化ファイルについて「時計」から「秒針の太さ」を取得して秒針幅とする
    初期化ファイルについて「時計」から「秒針の色」を取得して秒針色とする
    秒中心を「,」で区切って秒針位置とする
    //位置Xを表示する
    //位置Yを表示する
  終わり

  文字盤を表示する時の手順
    //MDI親ウィンドウは、マネージャー画面
    //MDI親ウィンドウの内容を表示する
    //一覧は、MDI親ウィンドウの子ウィンドウを列挙したもの
    //一覧を表示する
    キャンバス1というキャンバスを作る
      その位置と大きさを{0,0,248,248}に変える
      その位置固定方向を「右+左+下+上」に変える
      その背景画像を「[文字盤]」に変える
  終わり

  時間が来た手順
    タイマー2を停止する
    針を動かす
    タイマー1の時間になった時の手順は、針を動かす
    タイマー1の間隔を[60*1000]に変える
    タイマー1を開始する
  終わり
  
  時を刻む時の手順
    現在の時刻を取得する
    0.5秒待つ
    もしSX=0でなければ
      秒針を消す
      キャンバス1を更新する
    もし終わり
    秒針角は、[現在秒*6-90+6]
    SX=([秒針角]度のコサイン)*秒針長
    SY=([秒針角]度のサイン)*秒針長
    キャンバス1へ線を描いて秒針とする
    秒針の位置と大きさは、{秒針位置(1),秒針位置(2),SX,SY}
    秒針の始点形状は、「[丸形]」
    秒針の線色を「[秒針色]」に変える
    秒針の太さを「[秒針幅]」に変える
    キャンバス1を更新する
    もし現在秒が「0」ならば
      針を動かす
    もし終わり
  終わり
  
  針を動かす時の手順
    現在の時刻を取得する
    もしHX=0でなければ
      時針を消す
      分針を消す
      //キャンバス1を更新する
    もし終わり
    時針角は、[(現在時を12で割った剰り*30)+(現在分/2)-90]
    分針角は、[現在分*6-90]
    HX=([時針角]度のコサイン)*短針長
    HY=([時針角]度のサイン)*短針長
    MX=([分針角]度のコサイン)*長針長
    MY=([分針角]度のサイン)*長針長
    キャンバス1へ線を描いて時針とする
    時針の位置と大きさは、{124,124,HX,HY}
    時針の線色を「[短針色]」に変える
    時針の太さを7に変える
    時針の始点形状は、「[丸形]」
    時針の終点形状は、「標準」
    キャンバス1へ線を描いて分針とする
    分針の位置と大きさは、{124,124,MX,MY}
    分針の線色を「[長針色]」に変える
    分針の太さを「5」に変える
    分針の終点形状は、「標準」
    キャンバス1を更新する
  終わり

  現在の時刻を取得する時の手順
    現在時刻は、今の時刻
    時刻配列は、現在時刻を「:」で区切ったもの
    現在時は、時刻配列(1)の整数
    現在分は、時刻配列(2)の整数
    現在秒は、時刻配列(3)の整数
  終わり

  キャンバス1がダブルクリックされた時の手順
    タイマー1を停止する
    自分を閉じる
  終わり
  
  デザインを変更した時の手順
    設定ファイルを読み込む
    もし「[外観]」が「」ならば
      文字盤は、素材リストから「Model-3.png」を画像として取得したもの
      文字盤は、「[外観]」
    もし終わり
    もし「[外観]」が存在しないならば
      文字盤は、素材リストから「Model-3.png」を画像として取得したもの
    そうでなければ
    もし終わり
    キャンバス1の背景画像を文字盤に変える
    もし秒表示が「はい」なら
      時を刻む
    そうでなければ
      針を動かす
    もし終わり
  終わり
  
終わり
--------------------------------------
子のアナログ時計は単体で動いている物から変更しています。

ところで、先日のファイラーはそちらで正常に動きましたでしょうか?

よろしくお願い致します。


関連一覧ツリー

をクリックするとツリーを一括表示します)

返信フォーム

(この投稿に返信する場合は下記フォームから投稿して下さい)
(1MBまで)
(英数字で8文字以内)

- 投稿修正/削除フォーム -
処理 No パスワード

▲ページの先頭へ

- WebForum -