Skip to content

YUZRANIUM/01_mypb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

マイ・プログレスバー GitHub release (latest by date including pre-releases)

プログレスバーを比較的簡単に設置できるモジュールです。不定期更新です。

不具合報告や要望等は Twitter のDMか HSPの掲示板 等で頂けると幸いです。

特徴(Feature)

  • user32.asgdi32.ashsp3util.as 等を必要とせず、本モジュールのみでプログレスバーを設置可能。1

  • 設置したプログレスバーに関する情報の取得は関数で行うため、式の中で利用可能。2

  • 内部で、オブジェクトの設置には winobj 命令、それ以外の命令・関数は sendmsg 命令 を使用。


今後の予定

  • ヘルプファイルの作製

  • pbsetst命令(pbstcolへ名称変更)を割合で指定できるようにしたい(pbstcol2命令)

  • pbinfo関数 にスタイル情報の取得を追加する

  • マーキー、通常スタイルの相互変更命令の追加

  • 設定に関する命令を1つにまとめたい

  • たくさん並べて、音楽に合わせてピコピコしているアレを作りたい()

  • 背景色、バーの色設定命令の追加(断念)


導入方法(Introduction)

.
├── 01_mypb.hsp
│
├── 01_mypb
│   ├── 01_mypbhelp.hs
│   ├── 01_mypb_smpl.hsp
│   └── 01_mypb.txt
│
├── README.md
├── README.html
└── License.txt
  • 01_mypb.hsp をユーザースクリプトのディレクトリか、HSP のインストールディレクトリ下の commonフォルダ内において、01_mypb.hspをインクルードしてください。

      例) hsp36/common/01_mypb.hsp
    
  • 01_mypbフォルダをHSPのインストールディレクトリ下にある doclibフォルダ内に01_mypbフォルダごと 置いて下さい。サンプルファイルもそのままで構いません。

      例) hsp36/doclib/01_mypb
    

機能(Function)

追加される使用可能命令・関数 全17
//---------------------------------------
// オブジェクトの設置
//---------------------------------------

// プログレスバーの設置(命令・マクロ)
//
// p1,p2 : Xサイズ, Yサイズ
// p3    : オブジェクトハンドルを受け取る変数
// p4(0) : スタイル
//         0 : 通常
//         1 : 垂直
//         2 : マーキー
    mypb X, Y, Objhwnd, style


//---------------------------------------
// オブジェクトの設定
//---------------------------------------

// プログレスバーの設定(命令・マクロ)
//
// p1      : オブジェクトハンドル
// p2(0)   : 最小値   (int)
// p3(100) : 最大値   (int)
// p4(0)   : 現在位置 (int)
// p5(1)   : 1ステップ当たりの変化量(+/-int)
    pbset objhwnd, min, Max, delta, now


//---------------------------------------
// プログレスバーの実行
//---------------------------------------

// 設定した変化量だけ進める(命令)
//
// p1 : オブジェクトハンドル
    pbstep objhwnd


//---------------------------------------
// 現在位置
//---------------------------------------

// プログレスバーの位置再設定(命令)
//
// p1 : オブジェクトハンドル
// p2 : 新しく設定する位置(int)
// p3 : 設定フラグ(0 = 絶対位置, 1 = 相対位置)
    pbrepos objhwnd, newpos, flag


//---------------------------------------
// プログレスバーの状態
//---------------------------------------

// プログレスバーの状態設定(命令)
//
// p1 : オブジェクトハンドル
// p2 : バーの状態
//   1 = PBST_NORMAL (緑色)
//   2 = PBST_ERROR  (赤色)
//   3 = PBST_PAUSED (黄色)
    pbsetst objhwnd, status


//---------------------------------------
// プログレスバーの情報取得
//---------------------------------------

//プログレスバーの情報取得(関数)         // ループ等、一覧表示に効果的
//
// p1 : オブジェクトハンドル
// p2 : 取得タイプ
//       0 : 現在位置 (int)
//       1 : 最小値   (int)
//       2 : 最大値   (int)
//       3 : 範  囲   (int)
//       4 : 変化量   (int)
//       5 : 状  態   (int)
//       6 : スタイル (int)     ※user32.asが必要です。
    pbinfo(objhwnd, p2)


    /*** マクロによる省略記法 ***/        // スクリプト上から容易に判別可能

    pb_now(objhwnd)          // 現在位置
    pb_min(objhwnd)          // 最小値
    pb_max(objhwnd)          // 最大値
    pb_rag(objhwnd)          // 範  囲
    pb_var(objhwnd)          // 変化量
    pb_sts(objhwnd)          // 状  態
    pb_sty(objhwnd)          // スタイル   ※user32.asが必要です。


//---------------------------------------
// プログレスバーの配色設定
//---------------------------------------

// プログレスバーの配色変更(命令・マクロ)
//
// p1     : オブジェクトハンドル
// p2(25) : 中間域の下限値 (int)
// p3(40) : 中間域の上限値 (int)
// p4(2)  : 下位域の状態   (PBST_ERROR  (赤色))
// p5(3)  : 中間域の状態   (PBST_PAUSED (黄色))
// p6(1)  : 上位域の状態   (PBST_NORMAL (緑色))
    pbstcol objhwnd, p2, p3, p4, p5, p6


// プログレスバーの状態配色変更(百分率指定)
//
// p1     : オブジェクトハンドル
// p2(25) : 中間域の下限値 (int:百分率)
// p3(40) : 中間域の上限値 (int:百分率)
// p4(2)  : 下位域の状態   (PBST_ERROR  (赤色))
// p5(3)  : 中間域の状態   (PBST_PAUSED (黄色))
// p6(1)  : 上位域の状態   (PBST_NORMAL (緑色))
    pbstcol2 objhwnd, p2, p3, p4, p5, p6


//---------------------------------------
// マーキーの操作
//---------------------------------------

// マーキーの操作(命令・マクロ)
//
// p1     : オブジェクトハンドル
// p2     : マーキー(0 = 停止, 1 = 再生)
// p3(30) : アニメーション更新間隔(ms)
    pbswmarq objhwnd, p2, p3


//---------------------------------------
// スタイルの相互変更
//---------------------------------------

// スタイルの相互変更(命令)  ※user32.asが必要です。
//
// p1 : オブジェクトハンドル
    pbcstyle objhwnd

必要環境(Environment)

  • Windows10, 11
  • HSP3.6以上

使用言語(Coding Language)

開発環境(Development environment)

  • Windows11 Pro 22H2 x64
  • Hot Soup Processor 3.7beta4
  • Visual Studio Code ver 1.73.1

LICENSE

本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」)の複製を取得するすべての人に対し、ソフトウェアを無制限に扱うことを無償で許可します。

これには、ソフトウェアの複製を使用、複写、変更、結合、掲載、頒布、サブライセンス、および/または販売する権利、およびソフトウェアを提供する相手に同じことを許可する権利も無制限に含まれます。

ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証も含みますが、それに限定されるものではありません。

作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求、損害、その他の義務について何らの責任も負わないものとします。


更新履歴(Change Log)

ver 0.40

2022/11/19

  • pbinfo関数 にプログレスバーのスタイル取得機能を追加
  • それに伴い関数形式のマクロ pb_sty() を追加
  • プログレスバーのスタイルを交互に変更する pbcstyle命令 を追加
  • pbstcol2命令 をプログレスバーの最小値が0以外の場合にも対応
  • プログレスバーのスタイルを追加
  • インクルードガードの修正

ver 0.3.1

2022/11/16

  • bpsetst2命令pbstcol命令 へ名称変更
  • 直接数値を指定する pbstcol命令 に対し、百分率指定できる pbstcol2命令 を追加
  • pbinfo関数 に"範 囲"(最小値と最大値の差)を追加. それに伴い、"変化量"と"状態"のパラメータを一つずつシフトさせた
  • pbinfo関数 の第2パラメータを省略して記述できるマクロを追加

ver 0.3.0

2022/11/14 ヘルプファイルの完成

ver 0.2.2

2022/11/13

  • pbinfo関数 の不具合修正

    • 修正内容 : 第2パラメータが3(プログレスバーの変化量取得)の場合での取得内容が全く異なるものであったこと
    • 原因 : sendmsg におけるメッセージID及びマクロ登録の定数が異なるものであったこと
      • 誤 : #const PBM_GETSTEP 0x040C
      • 正 : #const PBM_GETSTEP 0x040D0x040C ではなく 0x040D
  • 既知の不具合

    • 同じく、pbinfo関数 のバー色の取得

ver 0.2.0

2022/11/12

  • 情報取得関数 pbinfo関数 の新規追加。 それに伴い次の関数を削除

    • pbgetp   (現在位置の取得)
    • pbgetst   (状態の取得)

ver 0.1.1

2022/11/09 ディレクトリの変更

ver 0.1.0

2022/11/07 初公開

Footnotes

  1. 内部でuser32.asをインクルードしていますが、インクルードガードとしていますので二重インクルードにはなりません。

  2. pbinfo関数と、そのパラメータ省略版関数形式個別マクロがあります。

About

HSP3で比較的簡単にプログレスバーを設置するモジュール

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published