hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
Module/拡張版ginfo - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

Module | 拡張版ginfo | 描画フォント名の取得

hsp3.png

拡張版ginfoモジュール

描画フォント名の取得が結構簡単に使えるのでウィンドウ関連情報を取得するginfo()に組み込んだら尚いいと思ったので分けてみました。

0〜24番,26〜27番は元のginfo@hspで使用されますので28番以降をユーザーが自由に機能追加できます。
この他にも取得される情報を独自に追加されたら是非このモジュール(ページ)にも追加お願いします。

※HSPのバージョンアップによりginfo()で取得できる情報の増加によって使用できなくなる可能性があります。

モジュール

Everything is expanded.Everything is shortened.
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
#module "mod_ginfo"
#undef ginfo
;===========================================================
; ginfo p1
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
; p1で指定したタイプのウィンドウ関連情報値を返します。
; 取得できるタイプは以下の通りです。
; 0〜24 : 元のginfo()に準拠します。
; 25    : 未使用
; 26    : 描画先のウィンドウの初期化Xサイズ
; 27    : 描画先のウィンドウの初期化Yサイズ
; 28    : 操作先ウィンドウに設定されている描画フォント名
; 29,30 : 描画先ウィンドウのオブジェクトの配置サイズの幅と高さ
; 31〜  : 未使用
;===========================================================
#define global ginfo_font ginfo(28)
#define global ginfo_objx ginfo(29)
#define global ginfo_objy ginfo(30)
 
#defcfunc ginfo int p1
    // バージョンチェック(とりあえずサポート外エラー)
    if( __hspver__ < $3000 )|( __hspver__ > $301f ): return ginfo@hsp(-1)
 
    mref bm, 67
 
    switch( p1 )
    case 28
        dupptr typeface, varptr(bm.56), 1, 2
        return typeface
    case 29
    case 30
        return bm.p1
    default
        return ginfo@hsp(p1)
    swend
 
#global
#if 0
;======================= テ ス ト ======================
    mes ginfo_font
    mes ginfo_objx
    mes ginfo_objy
#endif

コメント

  • switch-case-swendは拡張マクロの使用を有効にしていないと使えないので、エディタの設定に影響されないようにifのみを使うことにしました。 -- kz3 2005-12-20 (火) 10:14:28
  • 少し標準命令を変えたのも新規命令にして使っていたけどUNEFという手があったね。 -- hiroki? 2005-12-20 (火) 13:49:26
  • ginfo(26)とginfo(27)は、それぞれginfo_sx,ginfo_syなので使えないみたいです。 -- QIG 2005-12-20 (火) 17:24:09
  • hspdef.asで確認しました -- hiroki? 2005-12-20 (火) 18:13:51
  • ginfo_sx/ginfo_sy ないんですが・・・(汗 -- kz3 2005-12-21 (水) 08:48:23
  • hspdef.asにはありました。しっかりと・・・。helpmanのHSファイルにはginfo_sx,ginfo_syマクロは登録されていないようです。ginfo()の説明にも0〜24までしか載っていませんでした。実行してみた結果、次のような内容ではないかと思います。
    • ginfo(12) , ginfo_winx
      • 現在の操作先ウィンドウの初期化Xサイズが代入されています。
        最初にscreen,bgscr,buffer命令で初期化された画面サイズになります。
        現在の描画先ウィンドウのクライアント領域のXサイズが代入されています。(訂正案)
    • ginfo(13) , ginfo_winy
      • 現在の操作先ウィンドウの初期化Yサイズが代入されています。
        最初にscreen,bgscr,buffer命令で初期化された画面サイズになります。
        現在の描画先ウィンドウのクライアント領域のYサイズが代入されています。(訂正案)
    • ginfo(26) , ginfo_sx
      • 最初にscreen,bgscr,buffer命令で初期化された画面Xサイズになります。(追加案)
    • ginfo(27) , ginfo_sy
      • 最初にscreen,bgscr,buffer命令で初期化された画面Yサイズになります。(追加案)
  • ginfo(24)の後に何故25が使用されていないのかが気になりますが・・・そして26,27がヘルプに載っていないのも。仕方ないので28以降を使用します^^; -- kz3 2005-12-21 (水) 08:56:12
  • ここで案を出しても仕方ない。 -- kz3 2005-12-21 (水) 09:20:49
  • あ、ページ上部のモジュールの横のリンクですがこのページでここを参照しても仕方ないです^^;直してくれた方・・・Shark++さんかな?
    実はginfo()に組み入れないモジュールで取得できるモジュールも作って、そこを参考としてリンクしていたんです^^; -- kz3 2006-01-18 (水) 16:16:08

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2007-04-08 (日) 02:31:26 (2436d)