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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
1214
ホビット厚かましいお願いですが7解決


ホビット

リンク

2012/12/14(Fri) 15:43:00|NO.51138

以前サイトで拾ったメモ帳のソースに御手数ですが一行ずつコメントをいただけないでしょうか?

#include "mod_menu.as" #define ctype LOWORD(%1) (%1 & $FFFF) #enum ID_NEW #enum ID_OPEN #enum ID_SAVE #enum ID_SAVEAS #enum ID_EXIT cls 1 objmode 1 buf="" fname="" mesbox buf,636,446,1,0 objsize 64,24 title "メモ帳" oncmd gosub *command, WM_COMMAND newmenu SubMenu.1, 1 addmenu SubMenu.1, "新規(&N)", ID_NEW addmenu SubMenu.1, "開く(&O)", ID_OPEN addmenu SubMenu.1, "上書き保存(&S)", ID_SAVE addmenu SubMenu.1, "名前を付けて保存(&A)...", ID_SAVEAS addmenu SubMenu.1, "", 0, $800 addmenu SubMenu.1, "終了(&X)", ID_EXIT newmenu Menu, 0 addmenu Menu, "ファイル(&F)", SubMenu.1, $10 applymenu Menu *main stop *command wID = LOWORD(wparam) if wID == ID_NEW { buf="" objprm 0, buf fname = "" } if wID == ID_OPEN { dialog "txt", 16, "テキストファイル" if stat == 1 { fname = refstr bload fname, buf objprm 0, buf } } if wID == ID_SAVE { if fname == "" { dialog "txt", 17, "テキストファイル" if stat == 1 { fname = refstr } else { return } } bsave fname, buf } if wID == ID_SAVEAS { dialog "txt", 17, "テキストファイル" if stat == 1{ fname = refstr i = instr(fname, 0, ".txt") if (i == -1) { fname = fname + ".txt" } bsave fname, buf } } if wID == ID_EXIT { end } return



この記事に返信する


@key

リンク

2012/12/14(Fri) 16:24:53|NO.51142

全部の行に解説をつけろと言われても困ります
わからないところがある上での質問ならその行、文をいってくれれば
親切な方が多いのできっと教えてくれます

わかる上でただ他人のソースコードを読むのがめんどくさいなら頑張って自分で理解してください



ホビット

リンク

2012/12/14(Fri) 16:41:46|NO.51146

>@keyさん
なにも考えずただメモ帳を作ろうと思ってソースを探してそのコメントを見ながら勉強
しようと思ったのでcls1とtitleくらいしか本当にわかりません><



check

リンク

2012/12/14(Fri) 16:56:43|NO.51148

>cls1とtitleくらいしか本当にわかりません><
F1キーを押して出てくるヘルプぐらい見ようぜ。
mod_menu関係の説明も載ってある。



@key

リンク

2012/12/14(Fri) 17:43:20|NO.51150

このスクリプトはWinApi使っていてかなり応用系
初心者には向きません・・・(winapiとは上のメニューの事で、HSPで作ろうとすると複雑になります)



cats

リンク

2012/12/14(Fri) 18:31:08|NO.51152

>cls1とtitleくらいしか本当にわかりません><
初心者の方は、まずは基本命令(プログラムで青く表示される文字)から覚えていく方がいいと思います。
と言いつつも書いてみました。こんなので分かるといいですが・・・

/* おまじない */ #include "mod_menu.as" //mod_menu.asを読み込み #define ctype LOWORD(%1) (%1 & $FFFF) #enum ID_NEW //新規ファイル作成 #enum ID_OPEN //ファイルを開く #enum ID_SAVE //上書き保存 #enum ID_SAVEAS //名前をつけて保存 #enum ID_EXIT //終了 /* ここから次までは特にいらない */ cls 1 objmode 1 /* 初期画面作成 */ buf="" //メモ帳のテキストボックスの内容(新規メモ帳なので空にしておく) fname="" //ファイル名(新規メモ帳なので空にしておく) mesbox buf,636,446,1,0 //テキストボックス作成 objsize 64,24 ;特にいらない title "メモ帳" /* メニューバー(ウィンドウの上のメニュー)作成 */ oncmd gosub *command,WM_COMMAND //メニューバーの項目が選択されたら*commandに行く newmenu SubMenu.1, 1 //メニュー項目作成 addmenu SubMenu.1, "新規(&N)", ID_NEW //「新規」項目* ここからのID_〜は4行目で設定したものを使う * addmenu SubMenu.1, "開く(&O)", ID_OPEN //「開く」項目 addmenu SubMenu.1, "上書き保存(&S)", ID_SAVE //「上書き保存」項目 addmenu SubMenu.1, "名前を付けて保存(&A)...", ID_SAVEAS //「名前をつけて保存」項目 addmenu SubMenu.1, "", 0, $800 //灰色の線 addmenu SubMenu.1, "終了(&X)", ID_EXIT //「終了」項目 newmenu Menu, 0 //メニューバー作成 addmenu Menu, "ファイル(&F)", SubMenu.1, $10 //上の項目たち(SubMenu.1)を「ファイル」に入れる applymenu Menu //上で設定したメニューを登録 /* メイン */ *main //いらない stop //ストップ /* メニューの項目が押されたら */ *command wID = LOWORD(wparam) if wID == ID_NEW {//新規 buf="" //内容を空にする objprm 0, buf //メッセージボックスに送る fname = "" //ファイル名を空にする } if wID == ID_OPEN {//ファイルを開く dialog "txt", 16, "テキストファイル" //ファイルを開くダイアログを表示 if stat == 1 {//キャンセルされないとき ;exist refstr /*「;」をはずすことを推奨 */ ;if strsize!-1{ fname = refstr //ファイル名の変数にファイル名を入れる bload fname, buf//ファイルのロード objprm 0, buf //メッセージボックスにファイルの内容を表示 ;} } } if wID == ID_SAVE {//セーブ if fname == "" {//ファイルが新規のとき dialog "txt", 17, "テキストファイル" //どこに保存するかのダイアログ if stat == 1 {//キャンセルされないとき fname = refstr//ファイル名の変数にファイル名を入れる } else { //ファイルが新規でないとき(?) return //これは邪魔な気が・・・ } } bsave fname, buf //ファイルを保存 } if wID == ID_SAVEAS {//名前をつけて保存 dialog "txt", 17, "テキストファイル" //どこに保存するかのダイアログ if stat == 1{//キャンセルされないとき fname = refstr//ファイル名の変数にファイル名を入れる i = instr(fname, 0, ".txt")//指定のファイル名に.txtが付いているか確認 if (i == -1) { //付いていないとき fname = fname + ".txt" //付ける } bsave fname, buf //ファイルを保存 } } if wID == ID_EXIT {//終了 end //終了する } return //メインへ戻る



ホビット

リンク

2012/12/14(Fri) 20:34:45|NO.51157

>catsさん
ありがとうございます!!



ホビット

リンク

2012/12/15(Sat) 09:02:27|NO.51163

解決しました



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