HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0319
荒河screen命令を拡張する置換マクロ3解決


荒河

リンク

2012/3/19(Mon) 16:15:35|NO.45496

screenやbgscr命令はbuffer命令で初期化された命令で初期化しようとしても意味が無い仕様になっている。
しかも、エラーを返さないみたいのだ。
というわけでbufferで初期化されたWindowIDにscreen命令にアクセスするとstatに値を返す置換マクロを用意してみた。
ついでに使用中のウィンドウにアクセスしてもエラーが出るようにした。
ついでに、ウィンドウを初期化すると使用中フラグが立つのでウィンドウIDをReleaseScrで開放するか強制モード(+32だったと思う)にしないと初期化されずにえらーコードがstatに帰る。
使い道は知らない。

HOMEのブログにスクリプト乗っけたので突っ込み募集。



この記事に返信する


ヂオン

リンク

2012/3/20(Tue) 02:39:01|NO.45505

失礼ながら指摘させていただきます。
bmscr 構造体の type のメンバを参照すれば、
そのウィンドウがどの命令で初期化されたかを知ることが出来ます。



ヂオン

リンク

2012/3/20(Tue) 02:40:47|NO.45506

そしてチョットしたスクリプト


#module #defcfunc gwndini mref bms,67:return bms.17// bmscr 構造体の type メンバーにアクセス #global buffer 0,100,100 dialog "buffer "+gwndini() screen 1,100,100 dialog "screen "+gwndini() bgscr 2,100,100 dialog "bgscr "+gwndini() end



荒河

リンク

2012/3/23(Fri) 06:31:37|NO.45544

ツッコミありがとうございます。
bmscr構造体にアクセスする方法だと未初期化のウィンドウにアクセスするとエラーが出てしまいます。
screenやbgscrの後にtypeを調べて、bufferであればエラーを返すという使い方はできそうです。



ONION software Copyright 1997-2021(c) All rights reserved.