[ 新規に投稿する ]

inputの入力窓の位置No.08795
いちもんじ さん 18/10/26 14:36 [ コメントを投稿する ]
  例えば
 #a= val ( input "年齢は?" );
としたときに表示されるinputの入力窓の位置を、指定する位置に表示させることはできるのでしょうか?
[ ]
RE:08795 inputの入力窓の位置No.08796
秀丸担当 さん 18/10/26 16:01 [ コメントを投稿する ]
 
input関数で表示されるダイアログボックスの場所を変更する方法は用意されていないです。
検索ダイアログ等、他にもあるかもしれないですが、ダイアログの場所を変更する指定は用意されていないです。

表示される位置は、本体のウィンドウの左上隅からの相対的な位置になります。
そのため、少々無理矢理な方法ですが、/hで非表示の秀丸エディタを出して、そこでinputだけを呼ぶようにすると、一応なんとかできました。

例:

call Label_InputPos "入力してください", "あいう", 500, 500;
message $$return;
endmacro;

Label_InputPos:
#hOrg=hidemaruhandle(0);
openfile "/h /i";
#hNew=hidemaruhandle(0);
setwindowpos ##3,##4;
$$input = input($$1,$$2);
setactivehidemaru #hOrg;
closehidemaruforced #hNew;
return $$input;
[ ]
RE:08796 inputの入力窓の位置No.08797
いちもんじ さん 18/10/26 16:22 [ コメントを投稿する ]
  >
>検索ダイアログ等、他にもあるかもしれないですが、ダイアログの場所を変更する指定は用意されていないです。

はるか昔に同様の質問をさせていただいたような記憶が....
将来に向けても、場所を変更することができるようにはならないでしょうか?

マクロのほう、ありがとうございました。
感動です!
[ ]
RE:08797 inputの入力窓の位置No.08798
秀丸担当 さん 18/10/26 16:43 [ コメントを投稿する ]
 
調べてみたら、他の方からもinputの位置が変えることができたらいいという意見と、一時のβ版で/hの非表示からの相対位置がずれたので互換性を維持してほしいというような話がありました。
inputは位置の指定ができたらよさそうで、今後のバージョンで検討します。
[ ]
RE:08798 inputの入力窓の位置No.08799
いちもんじ さん 18/10/26 16:55 [ コメントを投稿する ]
  >
>調べてみたら、他の方からもinputの位置が変えることができたらいいという意見と、一時のβ版で/hの非表示からの相対位置がずれたので互換性を維持してほしいというような話がありました。
>inputは位置の指定ができたらよさそうで、今後のバージョンで検討します。

承知しました。
よろしくお願いいたします。
[ ]
RE:08799 inputの入力窓の位置No.08812
秀丸担当 さん 18/11/01 09:46 [ コメントを投稿する ]
 
V8.85β11で位置を指定するパラメータを追加してみていますが、パラメータを追記したヘルプが書かれていませんでした。
すみません。

input関数の第3パラメータ以降の値の意味は以下の通りです。
0x00 通常(省略と同じ)
0x01 中央
0x02 左上からの位置
0x03 右上からの位置
0x04 左下からの位置
0x05 右下からの位置
0x06 カーソル位置
0x10 上記の値に論理和して、ウィンドウの位置からと解釈する

第4パラメータ、第5パラメータは位置を指定します。
値はDPIが100%のときのピクセル単位で、DPIが200%のときは指定の2倍の値のピクセル数になります。
第3パラメータで0x02〜0x06を指定しているときに、第4パラメータ、第5パラメータが使われます。

例:
$a=input("入力してください","",0x01);//画面の中央
$a=input("入力してください","",0x05|0x10,100,50);//ウィンドウ右下からの位置
[ ]

[ 新規に投稿する ]