|
FUKIDASIを複数出したり、 行ごとにフォントサイズを変更することは可能でしょうか?
|
No.4903 2017/12/26(Tue) 17:09:50
|
☆ Re: かん / satocha |
|
|
fukidasiは1スレッドに1つしか表示できなかった気がします。 私の場合は、複数必要なときは別UWSをexecで起動しています。 1本のスクリプトで実現したいなら、threadで別プロシジャを呼べばいいと思います。
一つ注意点。fukidasiの表示初期値はスクリーンの左上なので、複数出すと表示がかぶってしまいます。スレッド(スクリプト)ごとに別の場所に表示するといいでしょう。
|
No.4904 2017/12/26(Tue) 19:59:57
|
|
☆ Re: かん / stuncloud |
|
|
public flg = FALSE thread fukidasi2("ひとつめ") thread fukidasi2("ふたつめ", 0, 50) thread fukidasi2("みっつめ", 0, 100)
msgbox("複数表示サンプル") flg = TRUE
procedure fukidasi2(msg, x = 0, y = 0) fukidasi(msg, x, y) repeat sleep(0.1) until flg fend
スレッドが終わるとふきだしも消えちゃうので関数内で待機ループが入っています フラグが立ったら消えるようにします 個別のフラグ管理となるとちょっと実装が面倒になりますが不可能ではないです
> 行ごとにフォントサイズを変更することは可能でしょうか? こっちはムリです (ものすごく頑張るとできるかもしれないけど、それが労力に見合う成果なのかは疑問です)
|
No.4912 2017/12/28(Thu) 10:22:59
|
|
☆ Re: かん / しゅん |
|
No.4913 2017/12/28(Thu) 14:07:17
|
|
☆ Re: かん / しろまさ |
|
|
// スタンさんベースで誤魔化しました^^
public flg = FALSE thread fukidasi2("ひとつめ") thread fukidasi2("ふたつめ", 0, 13, 12) thread fukidasi2("みっつめ", 0, 30) thread fukidasiBG(0, 0, 5, 3)
Sleep(3) flg = TRUE
procedure fukidasi2(msg, x = 0, y = 0, fs = 9) Fukidasi(msg, x, y, 0, fs, "", 0, 0, -2) repeat sleep(0.1) until flg fend procedure fukidasiBG(x, y, W, L) BG = Format(" ", W) For i = 2 To L BG = BG + "<#CR>" Next fukidasi(BG, x, y) repeat sleep(0.1) until flg fend
|
No.4914 2017/12/28(Thu) 14:43:10
|
|
☆ Re: かん / 森 |
|
|
// FUKIDASIではありませんが、こんなのはどうですか? // HTMLベースなので、文字色、サイズ、背景色、行数、なんでも自由自在です。 // 複数表示だって、画像の表示だって可能です!
id1 = message(text1,10,0,200,80) // メッセージ1を表示 Sleep(0.5) id2 = message(text2,10,100,250,200) // メッセージ2を表示 Sleep(0.5) id3 = message(text3,300,50,300,120) // メッセージ3(画像)を表示 Sleep(3) ctrlwin(id1, CLOSE) // 閉じる ctrlwin(id2, CLOSE) ctrlwin(id3, CLOSE)
// 吹き出しもどきを表示する function message(str,x,y,w,h) // 表示用ファイルの生成 hta_path = GET_CUR_DIR + "\hta_message.hta" f = fopen(hta_path, F_WRITE) fput(f, replace(hta_base,"{?hta_body}",str), F_ALLTEXT) fclose(f) // 表示してIDを返す result = exec("mshta.exe <#DBL>" + hta_path + "<#DBL>",false,x,y,w,h) // 表示用ファイルを削除 deletefile(hta_path) fend
// メッセージ1 textblock text1 <span class="big">本日は</span><span class="blue small">晴天なり</span> endtextblock
// メッセージ2 textblock text2 <span class="orange">犬も歩けば</span><span class="big red">棒</span>に当たる<br /> <span class="pink small">いろはに</span><span class="green">ほへと</span><br /> <span class="small">自</span><span class="blue">由自</span><span class="orange small">在</span> endtextblock
// メッセージ3 textblock text3 <img src="https://www.google.co.jp/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"> endtextblock
// 吹き出しもどきの骨格 textblock hta_base <html> <head> <hta:application caption="no" border="none" innerborder="no" scroll="no" showintaskbar="no"> <style> .blue{color:blue;} .red{color:red;} .green{color:green;} .orange{color:orange;} .pink{color:pink;} .big{font-size:2em;} .small{font-size:0.7em;} </style> </head> <body>{?hta_body}</body> </html> endtextblock
|
No.4917 2017/12/29(Fri) 12:15:24
|
|
☆ Re: かん / しろまさ |
|
|
お、面白そう!と実行してみましたが日本語が□に化けますね。 森さん、何か設定が必要ですか?
|
No.4920 2017/12/29(Fri) 14:14:47
|
|
☆ Re: かん / 森 |
|
|
しろまささん UTF-8の時は、<head></head>に以下を入れてください。 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
さらに、表示用ファイルの生成も明示的にUTF-8指定しておく方と確実ですね。 f = fopen(hta_path, F_WRITE8)
|
No.4921 2017/12/29(Fri) 14:22:16
|
|
☆ Re: かん / しろまさ |
|
|
f = fopen(hta_path, F_WRITE8) こっちで直りました。
スクリプトファイルはSJISにしてるのに変ですね。 Webページコピペするとなるのかな。
|
No.4923 2017/12/29(Fri) 17:50:34
|
|
☆ Re: かん / 森 |
|
|
何年か前に、まだフォームが1つしか作ることができなかった時代ですが、 もう一つフォームを出したくて調べてた時に、HTAのことを知ったんです。 廃れて忘れ去られている技術のようですが、HTML+javascriptだけじゃなくて、 なんとVBAまで直接書き込んで動くというステキな仕組み!! 当然、AjaxとかjQueryとかも動くはずなので、今こそ時代が追い付いた?みたいに思えます。
本当は、DOMで直接UWSCから内容を書き換えたりしたいのですが、 COMオブジェクトが分らなくて、調べたけど全然情報が無くて断念(´;ω;`)ウゥゥ
ローカルファイルの読み書きもできるみたいなので、 とりあえずはファイル経由でデータのやり取りはできそうですが・・・
|
No.4924 2017/12/29(Fri) 18:38:37
|
|
☆ Re: かん / satocha |
|
No.4927 2017/12/30(Sat) 12:25:39
|
|