|
|
2007/7/26(Thu) 19:52:24|NO.9775
*start
screen 0,500,500
cls 1
sdim form, 2024
form =""
pos 1, 50
mesbox form, 498, 450, 5
objsize 100,25
pos 0,0
button gosub "新規作成", *sinki
pos 100,0
button gosub "セーブ", *save
pos 200,0
button gosub "ロード", *load
stop
*load
dialog "*",16
if stat=0 :return
notesel form
noteload refstr
objprm 0,form
return
*sinki
form=""
objprm 0,form
return
*save
dialog "*",17
if stat=0 :return
notesel form
notesave refstr
return
に「ファイル(f)」とかつけたい
|
|
2007/7/26(Thu) 21:08:21|NO.9776
メニューバーというはどうですか?
メニューバーならサンプルにもあります。
|
|
2007/7/26(Thu) 23:26:49|NO.9781
フォームの上部にある注意書きの通りにスクリプトは <PRE>〜</PRE> で囲んでください。
(エスケープのために全角で書いていますが実際には小文字で記述してください)
アクセラレータのニーモニックは & をつけることで表現できます。
#uselib "user32.dll"
#func SetWindowText "SetWindowTextA" int, sptr
button "test", *test
id = stat
stop
*test
SetWindowText objinfo(id, 2), "test (&T)"
dialog "\"&\" を表示したいときは \"&&\" とします", 0, "補足"
stop
ただし、アクセラレータとそのループ処理は自分で実装する必要があるのでご注意下さい。
|
|
2007/7/26(Thu) 23:29:45|NO.9782
すみません。
ボタンの文字列はobjprmで変更できるのでワザワザ SetWindowText() API関数を使用する
必要ありませんでした。
|
|
2007/7/27(Fri) 08:56:47|NO.9791
きちんとサンプルを見ましたか?
googleなどで調べて見ましたか?
たくさんのサイトに答えがのっています。
ここにソース(APIを使ったメニューバー)を書いておきます。
#uselib "user32"
#cfunc CreatePopupMenu "CreatePopupMenu"
#cfunc CreateMenu "CreateMenu"
#func AppendMenu "AppendMenuA" int,int,int,str
#func SetMenu "SetMenu" int,int
#func DrawMenuBar "DrawMenuBar" int
#enum NULL=0
#enum NEW
#enum OPEN
#enum SAVE
#enum EXIT
Fmenu=CreatePopupMenu()
AppendMenu Fmenu,0,NEW,"新規作成(&N)"
AppendMenu Fmenu,0,OPEN,"開く(&O)"
AppendMenu Fmenu,0,SAVE,"保存(&S)"
AppendMenu Fmenu,0x800,0,""
AppendMenu Fmenu,0,EXIT,"終了(&E)"
Menu=CreateMenu()
AppendMenu Menu,0x10,Fmenu,"ファイル(&F)"
SetMenu hwnd,Menu
DrawMenuBar Menu
oncmd gosub *COMMAND,$111
stop
*COMMAND
if wparam=0 :RETURN
switch (wparam&$FFFF)
case NEW
dialog "「新規作成(N)」が選択されました"
swbreak
case OPEN
dialog "「開く(O)」が選択されました"
swbreak
case SAVE
dialog "「保存(S)」が選択されました"
swbreak
case EXIT
dialog "「終了(E)」が選択されました"
end
swbreak
swend
return
|
|
2007/7/27(Fri) 20:37:35|NO.9821
よくわからん
|
|
2007/7/28(Sat) 02:49:01|NO.9834
敷居が高いと思ったら、とりあえずおいといて、
自分の出来そうな思い付きを組み込めばいいんでね?
|
|
2007/7/28(Sat) 03:49:22|NO.9835
スレ作成主の目的はなんなんだろうなw
|
|
2007/8/5(Sun) 13:44:04|NO.10134
musicです。興味があるので提案です。
追加で、背景を黒とか画像に置き換えて、
字の色を白にしたり、字体や大きさを変えたり出来れば、
もっと良くなるのではないでしょうか?
このままだと、字が小さくて読みづらいです。
|
|
2007/8/5(Sun) 17:15:53|NO.10139
ひとりでプログラムつくれないヤツに 提案 とか みづらい とか言われたくないわ。
|
|
2007/8/5(Sun) 19:56:12|NO.10145
私はただ、こんなものが出来たらいいなぁ〜。
と思い、より良いものになるために意見を出したまでです。
>ひとりでプログラムつくれないヤツ
そう思われても仕方ありませんが、
プログラムできなかったら提案してはいけないんでしょうか?
別に私は、文句を付けに来たわけじゃありませんし、
荒らそうという気もありません。
ただ、興味を持ったので意見を出しただけです。
いいものが出来ると信じていますが。
では、頑張ってください...。
|
|
2007/8/5(Sun) 21:55:39|NO.10148
なんか「じじぃ」の名で、適当な理屈を書いて応募しておいたソフトが公開されたようなので、
手ごろな終了スレにソースを捨てておく。
#define locate( %1 , %2 ) pos %1*16 , %2*16
screen 0,640,480 : randomize : ce = "<■■}"
cp(0) = "−−+−−\n ■\ \n×=■■ \n ___}" : cp(1) = "−−+−−\n /■ \n ■■=×\n{___ "
cp(2) = " + \n ■\ \n+=■■ \n ___}" : cp(3) = " + \n /■ \n ■■=+\n{___ "
map(0) = " /\ "
map(1) = " / \ "
map(2) = "−−−−−−−−−−−|ロロ|−−−−−−−−−−−−−−−−−−−−−−−−−"
map(3) = " |__| | H | "
map(0) += " ▲ ▲ | /\ "
map(1) += " ▲ ■ ■ | /\/ \ "
map(2) += "−−■−■−■−−−−−−−−−−−−|−−−−/−−−−−−\−−−−−−−−"
map(3) += " | | | | "
map(0) += " /\ "
map(1) += " / \ "
map(2) += "−−−−−−−−−−−−−−−−−−−−−−−−|ロロ|−−−−−−−−−−−−"
map(3) += " | H | |__| "
*start : x = 0 : y = 14 : v = 0 : ex= 200 : ey= 0 : ef= 0 : sc = 0 : c = 0 : h = 0
*mainloop : stick st,15,0 : p = p ^ 2
x = x + ( ( ( st and 4 ) != 0 ) and x < 160 ) * ( v = 0 ) * ( y != 14 )
x = x - ( ( ( st and 1 ) != 0 ) and x > 0 ) * ( v = 1 ) * ( y != 14 )
y = y - ( ( ( st and 2 ) != 0 ) and y > 0 ) + ( ( ( st and 8 ) != 0 ) and y < 14 )
if ( st and 16 ) != 0 : v = v ^ 1
if x = 0 and y = 14 { sc += h : h = 0 }
if x = 160 and y = 14 { c += 1 : if c > 20 { h += 1 : c = 0 : if h > 10 { h = 10 } } }
if ef = 0 and x > 60 { ex = x + 40 : ey = y - 3 + rnd( 7 ) : ef = 1 }
ex = ex - ( ( ef = 1 ) * 2 ) : ef = ( ef = 1 and ex > ( x - 40 ) )
ex = ex * ( ef != 0 ) + 200 * ( ef = 0 )
redraw 0 : color 0,0,0:boxf :color 255,255,255
locate 0 , 0 : print "SCORE :" + sc : locate 20 , 0 : print "RESCUE:" + h
for i,0,4 : locate 0 , (15 + i) : print strmid( map( i ) , x & 0xfe , 80 ) : next
locate 17 , y : print cp( p + v ) : locate (ex - x + 17) , ey : print ce : redraw 1
if ( y <= ey ) + ( y + 3 >= ey ) + ( x - 1 <= ex ) + ( x + 4 >= ex ) = 4 :goto *go
await 50 : goto *mainloop
*go : locate 16 , 20 : print "GameOver" : locate 15 , 21 : print "Retry> SPC"
stick st,15,0 : if ( st and 16 ) != 0 : goto *start
await 50 : goto *go

| |
|
2007/8/22(Wed) 17:11:58|NO.10552
未解決スレッドです
|
|
2007/8/22(Wed) 19:02:07|NO.10559
>未解決スレッドです
あたりまえだ
>手ごろな終了スレにソースを捨てておく。の意味がわからんし
|
|
2007/8/24(Fri) 12:19:35|NO.10617
#define locate( %1 , %2 ) pos %1*16 , %2*16
意味不明
|
|
2007/8/24(Fri) 16:31:20|NO.10619
> 意味不明
スクリプト内の locate x, y を、全て pos x*16, y*16 と置き換えるためのものです。スクリプトを読みやすくする為のマクロですので、あまり気になさらないでも良いと思います。
ところで「このスレッドを立てたウーパールーパーさん」は、まだ回答を必要とされていらっしゃるのでしょうか?そうでないならば解決としても良いと思うのですが。もし見ていましたら返信願います。
|
|
2007/8/24(Fri) 19:50:25|NO.10634
#define locate( %1 , %2 ) pos %1*16 , %2*16
screen 0,640,480 : randomize : ce = "<■■}"
cp(0) = "−−+−−\n ■\ \n×=■■ \n ___}" : cp(1) = "−−+−−\n /■ \n ■■=×\n{___ "
cp(2) = " + \n ■\ \n+=■■ \n ___}" : cp(3) = " + \n /■ \n ■■=+\n{___ "
map(0) = " /\ "
map(1) = " / \ "
map(2) = "−−−−−−−−−−−|ロロ|−−−−−−−−−−−−−−−−−−−−−−−−−"
map(3) = " |__| | H | "
map(0) += " ▲ ▲ | /\ "
map(1) += " ▲ ■ ■ | /\/ \ "
map(2) += "−−■−■−■−−−−−−−−−−−−|−−−−/−−−−−−\−−−−−−−−"
map(3) += " | | | | "
map(0) += " /\ "
map(1) += " / \ "
map(2) += "−−−−−−−−−−−−−−−−−−−−−−−−|ロロ|−−−−−−−−−−−−"
map(3) += " | H | |__| "
*start : x = 0 : y = 14 : v = 0 : ex= 200 : ey= 0 : ef= 0 : sc = 0 : c = 0 : h = 0
*mainloop : stick st,15,0 : p = p ^ 2
x = x + ( ( ( st and 4 ) != 0 ) and x < 160 ) * ( v = 0 ) * ( y != 14 )
x = x - ( ( ( st and 1 ) != 0 ) and x > 0 ) * ( v = 1 ) * ( y != 14 )
y = y - ( ( ( st and 2 ) != 0 ) and y > 0 ) + ( ( ( st and 8 ) != 0 ) and y < 14 )
if ( st and 16 ) != 0 : v = v ^ 1
if x = 0 and y = 14 { sc += h : h = 0 }
if x = 160 and y = 14 { c += 1 : if c > 20 { h += 1 : c = 0 : if h > 10 { h = 10 } } }
if ef = 0 and x > 60 { ex = x + 40 : ey = y - 3 + rnd( 7 ) : ef = 1 }
ex = ex - ( ( ef = 1 ) * 2 ) : ef = ( ef = 1 and ex > ( x - 40 ) )
ex = ex * ( ef != 0 ) + 200 * ( ef = 0 )
redraw 0 : color 0,0,0:boxf :color 255,255,255
locate 0 , 0 : print "SCORE :" + sc : locate 20 , 0 : print "RESCUE:" + h
for i,0,4 : locate 0 , (15 + i) : print strmid( map( i ) , x & 0xfe , 80 ) : next
locate 17 , y : print cp( p + v ) : locate (ex - x + 17) , ey : print ce : redraw 1
if ( y <= ey ) + ( y + 3 >= ey ) + ( x - 1 <= ex ) + ( x + 4 >= ex ) = 4 :goto *go
await 50 : goto *mainloop
*go : locate 16 , 20 : print "GameOver" : locate 15 , 21 : print "Retry> SPC"
stick st,15,0 : if ( st and 16 ) != 0 : goto *start
await 50 : goto *go
の解説がほしいあるね

| |
|
2007/8/24(Fri) 21:06:12|NO.10641
> の解説がほしいあるね
新スレを立てるか、直接fさんのサイトまたはメールでお問い合わせください。
運がよければ解説してもらえるかもしれません。
というかその前に自力で解読する努力をしてください。
|
|