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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0424
kai画面に直接文字入力9未解決


kai

リンク

2014/4/24(Thu) 07:30:58|NO.61643

inputを使用せずにコマンドプロンプトのように画面に直接文字を入力することはできますか?



この記事に返信する


YSR

リンク

2014/4/24(Thu) 08:58:40|NO.61645

 そもそも、「キー操作により文字列を編集できる」エディタを1から作るのは
結構面倒です。なので、通常OS側でそれを実現するためのAPI(ツール的なもの)が
提供されています。input命令やmesbox命令などは、Windowsが提供するWin32APIの
中にある「エディットコントロール」と呼ばれるものをそのまま使っているだけ
なので、もうちょっとオリジナリティのあるエディタを作りたい場合は、自分で
1から実装するか、他の人が作ってくださったモジュールを利用することになります。

 単に「入力したキーをアルファベットとして受け取り出力/編集」程度なら
それほど作るのは難しくないですが、範囲選択だの全角文字だのに対応しだすと
途端に面倒になります。そこで、通常自分でエディタを作成する場合は後者を
採用することになるかと思われます。

 有名なエディタモジュールとしては、HSPの標準エディタにも採用されている
「Footy2」などがあります。



KA

リンク

2014/4/24(Thu) 11:21:28|NO.61648

質問の意図が理解できない、具体的な内容で質問しよう。



あり

リンク

2014/4/24(Thu) 11:24:30|NO.61649

とりあえず、サンプルの『game』フォルダに
タイピングゲームのサンプル(typing.hsp)があるので
自分の目的に合うかどうか確認してみてください。

目的に合わないのであれば
どういう物を作りたいのかを詳しく説明すれば
具体的な回答も得られやすいでしょう。



kai

リンク

2014/4/24(Thu) 15:50:41|NO.61652

前に作っていたkai cmdというソフトの改造版的なのを作っています。

ようするにwindowsのコマンドプロンプトです。

inputだとコマンドプロンプトの見映えが悪くなってしまうと考えたためです。



ヒラギノ

リンク

2014/4/24(Thu) 16:26:33|NO.61653

下記のサンプルを使用するとかどうでしょうか

http://lhsp.s206.xrea.com/hsp_object2.html#6



kai

リンク

2014/4/24(Thu) 17:59:49|NO.61656

うーん・・・

ヒラギノさんのURLは思っていたことに近かったのですが、組み込み方がよくわかりませんw



cats

リンク

2014/4/24(Thu) 18:49:23|NO.61657

直接描画というのはmesとかかな?
とりあえず英数字とエンターに対応させてみました。

title "キーを入力してください" sdim buf, 2560 sysfont 11 onkey gosub *Inkey gosub *Draw stop *Inkey if lparam==13 : buf+="\n" : gosub*Draw if lparam>>30 : return poke buf, strlen(buf), iparam gosub *Draw stop *Draw color : boxf pos 0,0 : color 255, 255, 255 mes buf return
やはりメッセージボックスを使うほうが多くの環境に対応できて
かつ簡単にできるんじゃないでしょうか。

ヒラギノさんの提示されたURLのソースでは入力ボックスの枠を
非表示にします。更に背景色や文字色、フォントなどを変更すれば
コマンド プロンプトに似たものは作れます。
コマンドを打ち込んでEnterで実行させる場合は
http://lhsp.s206.xrea.com/command/input.html
こちらの「(応用) Enterキー判定」が参考になります。



ヒラギノ

リンク

2014/4/24(Thu) 19:16:48|NO.61658

こんな風でしょうか?


#include "gdi32.as" #uselib "user32" #func SetWindowLong "SetWindowLongA" int, int, int #func SetWindowPos "SetWindowPos" int, nullptr, nullptr, nullptr, \ nullptr, nullptr, int #define ctype RGB(%1,%2,%3) (%1 | %2 << 8 | %3 << 16) dim hInput, 2 oncmd gosub *ctlcoloredit, $133 onexit *exit objsize 640, 480 a = "C:\\Windows\\System >" input a hInput.0 = objinfo(stat, 2) SetWindowLong objinfo (0, 2), -20, $0 SetWindowPos objinfo (0, 2), $27 CreateSolidBrush RGB($00, $00, $00) hBrush.0 = stat stop *ctlcoloredit if hInput.0 = lparam { SetTextColor wparam, RGB($FF, $FF, $FF) SetBkColor wparam, RGB($00, $00, $00) return hBrush.0 } return *exit DeleteObject hBrush.0 end



Satio Soft

リンク

2014/8/4(Mon) 13:25:30|NO.63388

コマンドプロンプト風があります。

#include "llmod3/llmod3.hsp" #include "llmod3/console.hsp" console ;コンソール実行 putz "sample" ;文字表示 gets s ;Enterキーを押されるのを待つ console_end ;コンソール終了 end



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