|
 |
|
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

| |
|
2012/12/14(Fri) 16:24:53|NO.51142
全部の行に解説をつけろと言われても困ります
わからないところがある上での質問ならその行、文をいってくれれば
親切な方が多いのできっと教えてくれます
わかる上でただ他人のソースコードを読むのがめんどくさいなら頑張って自分で理解してください
|
|
2012/12/14(Fri) 16:41:46|NO.51146
>@keyさん
なにも考えずただメモ帳を作ろうと思ってソースを探してそのコメントを見ながら勉強
しようと思ったのでcls1とtitleくらいしか本当にわかりません><
|
|
2012/12/14(Fri) 16:56:43|NO.51148
>cls1とtitleくらいしか本当にわかりません><
F1キーを押して出てくるヘルプぐらい見ようぜ。
mod_menu関係の説明も載ってある。
|
|
2012/12/14(Fri) 17:43:20|NO.51150
このスクリプトはWinApi使っていてかなり応用系
初心者には向きません・・・(winapiとは上のメニューの事で、HSPで作ろうとすると複雑になります)
|
|
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
解決しました
|
|