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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
1002
ハンマーカンマ―mes と input を mes の長さを基準に、交互に並べたい2未解決


ハンマーカンマ―

リンク

2020/10/2(Fri) 11:00:00|NO.91522

はじめまして。ハンマーカンマ―と申します。
現在、mes 関数で単語を表示し、その両端にinputを置く、というプログラムを作成しようとしています。

このmesについてなのですが、リストから異なる長さの単語を並べたいです。
しかし、そうなると単語の長さに合わせてインプットの位置や2つ目の単語の位置を調整しなければなりません。

そこで、mes と input を自動的に位置を調整して横並びにする方法がないか教えて頂きたいです。

以下が現在のコードになります。


 pos 10, 110
ans = "" input ans, 30, 20 pos 50,110 mes wordlist(1) pos 150, 110 ans1 = "" input ans1, 30, 20 ;---------2つ目------------- pos 200, 110 mes wordlist(2) font "MS ゴシック", 15, 1 pos 300, 110 ans2 = "" input ans2, 30, 20


以上のような固まりがいくつも並んでいると言った具合です。

どうぞ、よろしくお願い致します。



この記事に返信する


kanamaru

リンク

2020/10/2(Fri) 11:52:19|NO.91523

mesで表示した後、ginfo_mesxに表示した文字列のxサイズ、ginfo_mesyにyサイズが入っています。
また、inputは標準でxサイズが64、yサイズが24なので、
それを利用して、

wordlist="test1","test2","test3" inputlist="","","" pos 20,20 foreach wordlist mes wordlist(cnt) pos ginfo_cx+ginfo_mesx,ginfo_cy-ginfo_mesy input inputlist(cnt) pos ginfo_cx+64,ginfo_cy-24 await 1 loop
と書けばいいと思います。
ただinputのサイズはobjsizeを指定していないときを想定しています。
サイズを取得して処理することもできますが、
読んだ限りサイズは固定ですよね?
だったらサイズを定数にでもして
上記プログラムの64をxサイズの定数に24をyサイズの定数に変更してください。
今は上端がそろっていますが
inputと文字列の中心をそろえたり下端をそろえたければ言ってくれれば
プログラムを修正します。



こいる

リンク

2020/10/2(Fri) 16:05:25|NO.91524

mes命令のp2に、1を指定すると、
カレントポジションが描画した文字の右端になります。

mes "test1",1 mes "test2",1

これを使うと、mes後の位置調整が要らなくなるので、
少しだけコンパクトにできます。

wordlist="test1","test2","test3" inputlist="","","" pos 20,20 foreach wordlist mes wordlist(cnt),1 input inputlist(cnt) pos ginfo_cx+64,ginfo_cy-24 await 1 loop



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