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


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0617
たおたおscreen,0を1つ作り、一つでは常に処理が通っててscreen,1でもいろんな処理が通る14未解決


たおたお

リンク

2013/6/17(Mon) 20:41:47|NO.54987

題名のような事って可能ですか?


;***** 雛型となるテキスト時計の例 (texttokei.hsp) *****
#uselib "user32.dll"
#func SetTimer "SetTimer" int, int, int, int
#func KillTimer "KillTimer" int, int
#define WM_TIMER 0x0113
#define ID_TIMER 1

screen 0,144,90,0
title "テキスト時計" : font "MS 明朝",28,1
oncmd gosub *OnTimer, WM_TIMER
onexit gosub *Onowari
SetTimer hwnd, ID_TIMER, 500, 0
stop

*OnTimer
color 255,255,255 : boxf 9,8,132,38

sec =strf("%02d",gettime(6)) ;秒

redraw 0
color 0,0,0
pos 10,10 : mes ""+sec

hour=0 : min=0 : sec=0
redraw 1,9,8,132,38
await 50
redraw 0,9,8,132,38 ;画面ちらつき防止対策
return

*Onowari
KillTimer hwnd, ID_TIMER
end



例をあげるとメイ(ンscreen,0)ではこれが働いており、
サブ(screen,1)では画像1と画像2が一定間隔で入れ替わるようなスクリプトがほしいです



この記事に返信する


KA

リンク

2013/6/17(Mon) 20:57:05|NO.54988

まず、双方のスクリプトを考えてください。
合体はそれから考えましょう。



ht.

リンク

2013/6/17(Mon) 21:02:07|NO.54990

SetTimerが使えるならすぐに実現できることです。

#uselib "user32" #func SetTimer "SetTimer" int, int, int, int #func KillTimer "KillTimer" int, int #define WM_TIMER 0x0113 onexit *on_exit screen 0, 200, 100 oncmd gosub *on_timer_wnd1, WM_TIMER hwnd_1 = hwnd SetTimer hwnd_1, 0, 300, 0 screen 1, 200, 100 oncmd gosub *on_timer_wnd2, WM_TIMER hwnd_2 = hwnd SetTimer hwnd_2, 0, 500, 0 stop *on_timer_wnd1 gsel 0 redraw 0 color 255, 255, 255 : boxf : color pos 10, 10 : mes wnd1_cnt redraw 1 wnd1_cnt++ return *on_timer_wnd2 gsel 1 redraw 0 color 255, 255, 255 : boxf : color pos 10, 10 : mes wnd2_cnt redraw 1 wnd2_cnt++ return *on_exit KillTimer hwnd_1, 0 KillTimer hwnd_2, 0 end



たおたお

リンク

2013/6/17(Mon) 21:02:50|NO.54991

repeat
picload "画像1.jpg"
wait 100
picload "画像2.jpg"
wait 100
loop

これを同時に行いたいです



たおたお

リンク

2013/6/17(Mon) 21:16:38|NO.54994

いえ、それは僕もできます

bgscr 0,500,110,,0,0 : cls 4
bgscr 1,140,510,,0,0 : cls 4
picload "画像1.jpg",0
picload "画像2.jpg",1

このスクリプトはウィンドウID0とウィンドウID1を作ります。
picloadで0には画像1.jpg、1には画像2.jpgを貼り付けようとしますが
片方にしか貼り付けることができません。



ht.

リンク

2013/6/17(Mon) 21:25:05|NO.54995

それは単にgsel命令を忘れているだけではないですか?
もしかしてpicloadの第二引数(画像ロードモード)をそれと勘違いしているのでしょうか。



たおたお

リンク

2013/6/17(Mon) 21:29:32|NO.54996

ht.さん、それはどういうことですか?



ht.

リンク

2013/6/17(Mon) 21:35:18|NO.54998

gselやpicloadのヘルプを見てください。
gsel命令が描画先を変更すると書いてあるでしょう。



KA

リンク

2013/6/17(Mon) 21:41:18|NO.55002

>>サブ(screen,1)では画像1と画像2が一定間隔で入れ替わるような
・・・と・・・
>>picloadで0には画像1.jpg、1には画像2.jpgを貼り付けようとします
・・・で、何か違和感を感じます。・・・



たおたお

リンク

2013/6/17(Mon) 22:13:38|NO.55007

buffer 2
picload "画像2.jpg"

bgscr 0,500,110,,0,0 : cls 4 ;スクリーンひとつめ
bgscr 1,140,510,,0,0 : cls 4 ;スクリーンふたつめ
picload "画像2.jpg",0 ;ウィンドウID0番に画像1.jpgを描画
gsel 1,2 ;ウィンドウID1に画像2.jpgを描画

ぼくの見解はこんな感じですが
やっぱりできないですね。。。へるぷもみました



YSR

リンク

2013/6/17(Mon) 22:42:01|NO.55014

せめて

bgscr 0,500,110,,0,0 : cls 4 picload "画像1.jpg" bgscr 1,140,510,,0,0 : cls 4 picload "画像2.jpg"
とでも書けばまだ救われたかも



ZAP

リンク

2013/6/17(Mon) 22:56:43|NO.55019

>picload "画像2.jpg",0
の0は、描画先のウインドウIDではない。

もう一度picloadのヘルプを見るんだ。



ZAP

リンク

2013/6/17(Mon) 22:58:28|NO.55020

ついでに言うと、
gselは「描画先」を変更するだけで、描画はされない。

gselのヘルプを見るんだ。



たおたお

リンク

2013/6/17(Mon) 23:04:02|NO.55022

picload "filename",p1

"filename" : ロードするファイル名
p1=0〜1(0) : 画像ロードモード

gsel p1,p2

p1=0〜(0) : ウィンドウID
p2=0〜2(0) : ウィンドウアクティブスイッチ




htさんの
>>gselやpicloadのヘルプを見てください。
>>gsel命令が描画先を変更すると書いてあるでしょう。
と書かれたので
bufferなどで保存して・・・
ってやるといけるものかと思ってました><



ツノン

リンク

2013/6/18(Tue) 08:41:14|NO.55033

gsel screen bgscr buffer は 描画先ウィンドウを変更します。

picload を含め
gcopy
mes
boxf
line


hspのすべての描画系命令は gsel で最後に指定されたウィンドウID に対して動作します。



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