InputBox

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
TN

InputBox

#1 投稿記事 by TN »

超初心者です。できれば分かりやすくお願いします。

VBAなどのもので使用者から数値などを入力してもらうダイアログボックスを出す方法はありますが、ActiveBasicで出す方法はありますか?

簡単に文字列や数値を入力してもらう方法でもいいのでしっていたらよろしくお願いします。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#2 投稿記事 by konisi »

数値を入力してもらう事が目的なら、#N88BASIC等+Input命令で十分かもしれません。

コード: 全て選択

#N88BASIC
Dim A As String,B As Double
Input "文字列を入力",A
Print "入力された文字列 = ";A
Input "数値を入力",B
Print "入力された数値 = ";B
Sleep(-1)
ダイアログを作る場合は、エディットボックス1個コマンドボタン1個からなるウインドウを作り入力して貰って、
ボタンを押した時に入力されている文字列を回収するコード(下のような)を実装すればいいと思います。

コード: 全て選択

Dim InputBox_ReturnString As String
Sub InputBox_CommandButton1_Click()
    Dim A[255] As Byte
    GetWindowText(GetDlgItem(hInputBox,EditBox1),A,255)
    InputBox_ReturnString=MakeStr(A)
    EndDialog(hInputBox,0)
End Sub
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
T.N

#3 投稿記事 by T.N »

N88BASICのほうは分かるのですが、もうひとつのほうが少し分かりません。

Dim A[255] As Byte
GetWindowText(GetDlgItem(hInputBox,EditBox1),A,255)
InputBox_ReturnString=MakeStr(A)
EndDialog(hInputBox,0)

できれば一つ一つどういうことをしているか教えてください。
エディタボックスから読み込んだり文字を表示したりするのが苦手なの
でお願いします。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#4 投稿記事 by konisi »

ダイアログを表示するあたりまではわかりますか?

コード: 全て選択

'ダイアログが終了した時、このString型変数に入力された文字列が格納されている。
Dim InputBox_ReturnString As String

Sub InputBox_CommandButton1_Click()

'文字を取得するためのバッファを用意
    Dim A[255] As Byte

'最大文字バイト数に255を指定して、[InputBox]の[EditBox1]から文字列をロードし、用意してあったバッファにストア。
    GetWindowText(GetDlgItem(hInputBox,EditBox1),A,255)

'取得した文字列を、String型に変換。戻り値取得用のグローバル変数に代入。
    InputBox_ReturnString=MakeStr(A)

'[InputBox]ダイアログを終了する。
    EndDialog(hInputBox,0)
End Sub
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
TN

#5 投稿記事 by TN »

ありがとうございました。
とてもすっきりしました。

何度も悪いのですけど
Dim A[255]As Byte
とAの変数宣言したときに型はByteになってると思うのですけど
文字列が入っているきがします。(BytePtr?)

あと、これとは関係ないのですがプロジェクトでウィンドウをもうひとつ作って
ひとつのウィンドウを開いているときにもうひとつのウィンドウをひらく
(オプション画面やバージョン情報のような画面)方法を教えてください。

分かりにくくてすいません。

何度も悪いですがお願いします。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#6 投稿記事 by konisi »

配列とかポインタとかについて簡単に説明する事は難しくなっているのですが・・・


二番目のは、DialogBox関数を参照してください。Samplesフォルダ内のプロジェクト[TextEditor]が参考になるかもしれません。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
TN

#7 投稿記事 by TN »

回答ありがとうございました。

ウィンドウ系は苦手なのでこれからも勉強したいと思います。

ありがとうございました
返信する