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


HSPTV!掲示板


未解決 解決 停止 削除要請

2018
0828
科学太郎HSP3.5でユーザ定義命令のlocal指定について2未解決


科学太郎

リンク

2018/8/28(Tue) 21:54:06|NO.85246

モジュールを作成したとき、ユーザ定義命令で「local」を付けると
そのモジュールでしか利用できませんよね。

//-------------------------------------- // 外枠の描画 //-------------------------------------- #deffunc local DrawBox int _cx_,int _cy_,int _ex_,int _ey_ line(_ex_),(_cy_),(_cx_),(_cy_) line(_ex_),(_ey_) line(_cx_),(_ey_) line(_cx_),(_cy_) return

例えばこのような感じです。

この命令を使うとき、HSP3.32の場合では

DrawBox@modDrawPane cx,cy,ex,ey

このように「@モジュール名」を付けないとエラーになりました。
現在、HSP3.5をインストールして使ってますが、
「local」指定のユーザ命令で「@モジュール名」を付けなくても
エラーにはならずに正しく実行されてます。

HSP3.5になって「@モジュール名」を付けずに呼び出せるように
改良されたのでしょうか?



この記事に返信する


tds12

リンク

2018/8/29(Wed) 13:21:14|NO.85248

>HSP3.5になって「@モジュール名」を付けずに呼び出せるように
>改良されたのでしょうか?

>hsp351pのdoclib\history.txtより
>2016/01/19 3.5 beta3
>[hspcmp] モジュール内でlocal指定された関数を、定義する前の行から使用できるように修正

これですかね。

http://hsp.tv/play/pforum.php?mode=pastwch&num=35805
http://hsp.tv/play/pforum.php?mode=pastwch&num=69974



科学太郎

リンク

2018/9/7(Fri) 16:18:32|NO.85305

tds12さん

過去ログを読んで見ました。

2010/11/14の時点ではエラーになったらしいですね。
現在は、NO.35805 の前者も後者も同じ結果になります。
エラーにっていない。

という事は、改良されたのでしょうね。

NO.70116 の場合は、HSP3.5でも「myfunc in mod2」が表示されますね。
安全面を考えるとlocal指定の命令には「@モジュール名」を付けた方が良いようですね。

あと次のサンプルはエラーになるようですね。

//------------------------------------------------------------------------------ // グローバル領域のlocal指定 by 科学太郎 //------------------------------------------------------------------------------ //-------------------------------------- // メイン部 //-------------------------------------- *Main screen 0,420,120,SCREEN_NORMAL|SCREEN_FIXEDSIZE syscolor 15:boxf:color:title "グローバル領域のlocal指定 by 科学太郎" DrawBigClock@hsp 100 stop //-------------------------------------- // 大きな時計を描画 //-------------------------------------- #deffunc local DrawBigClock int _fn_ font MSGOTHIC,(_fn_) h=gettime(4) m=gettime(5) s=gettime(6) color $80,$00,$00:boxf color $60,$00,$00:pos 13,13:mes strf("%02d:%02d.%02d",h,m,s) color $DD,$00,$00:pos 10,10:mes strf("%02d:%02d.%02d",h,m,s) return //------------------------------------------------------------------------------ // End of sample317a(グローバル領域のlocal指定).hsp //------------------------------------------------------------------------------



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