投稿者 スレッド: 入門の記 その1  (Read 1870 times)

sokuhan

  • 新ユーザー
  • *
  • 投稿: 19
入門の記 その1
« 投稿日:: 2019年 7月 16日 , 午前 07:51:45 »
従前のBasic処理系だと、
編集画面でプログラムを記述し、
実行画面でデータの入出力を行うというものでしたが、
TBasicでは、
Locate文を使わずに、InputBox文を使ってデータ入力を行う。
最初の戸惑いです。
InputBox文では、その表示位置が固定され、
どのデータ項目を入力すべきかのガイダンスができるというわけで、
入力ミスがかなりの程度で阻止できる。
他方、入力したデータは逐一実行画面で逐行的に反映されていくので、
例えば10個、20個のデータのかたまりを入力する場合、
改めて入力されたデータの一覧表示をPrint文で実行画面上で表示させて、
訂正すべき項目の有無を確認し、
データの訂正の処理ルーチンに進むか、次のデータ入力に進むか、
選択するべき処理を組み込むことになる。
Locate文が使えないと、このあたりでの工夫が必要となるようです。

データ入力の際のデータ表示の一覧性を確保するために、
コントロール画面が準備されていて、
CTextBox(n).Text文で入力データの一覧表示ができるわけなのですが、
表示されたデータを訂正すべき場合に、
コントロール画面内でCTextBox(n).Textに直接にデータの内容を書き換えるということができないようで、
つまり、InputBox文を用いないと訂正すべきデータの再入力ができないようですので、
入力した訂正データは実行画面上に反映・表示されますから、
コントロール画面でのデータ表示ルーチンをかなり工夫しないと使いにくそうな塩梅です。

準備されているドキュメントやHelpでは、
コントロール画面の使いこなしについての解説が余りなされていないようですから、
入門者にとっては、1つのハードルになっています。

takeuchi

  • 管理人
  • *****
  • 投稿: 93
Re1:入門の記 その1
« Reply #1 投稿日:: 2019年 7月 16日 , 午後 01:53:11 »
sokuhanさん,こんにちは。

>TBasicでは、
>Locate文を使わずに、InputBox文を使ってデータ入力を行う。
>最初の戸惑いです。

 この辺りは,tbasic と従来型,例えば,N88BASIC等とは,基本的な考え方の違いがあります。

 理由はtbasicが Windows 上で動作するプログラムということにあります。Windows では,
一つのプログラムがいくつかのWindow を同時に利用することができます。これがWindows的OS の
大きな利点であると私は考えています。この特徴を利用して,tbasicでは,基本的に,
プログラム作成画面,実行画面,グラフィック画面,コントロール画面などいくつかの画面(Window)を使います。
これらは,独立でそれぞれの役割があり,必要に応じて,それらの間でデータの交換を行います。

 実行画面は,データの出入力を行うものですが,実際はデータの出力が主な目的です。
この実行画面は大きな出力画面で,数千行にも及ぶデータを一度に表示できます。紙に印刷するための
LPrint が tbasic に無いのは,実行画面が大きな紙の役割を果たすと考えているからです。
 Inputによる入力も,実行画面直接ではなく,入力ボックスが別に表示されて行います。このInputは
手で入力するものですから,一回限り,あるいは数回など少ないデータ入力を想定しています。
多くのデータを入力する場合は,Data文やファイルからの読み込みが良いでしょう。

>例えば10個、20個のデータのかたまりを入力する場合、
>改めて入力されたデータの一覧表示をPrint文で実行画面上で表示させて、
>訂正すべき項目の有無を確認し、 

 このような場合は,適当なテキストエディタを使って,データの一覧のファイルを作り
それを読み込み,使用するのが良いでしょう。また,Excel でデータを入力し,
それをcsvファイルで保存し,それを読み込むこともできます。
 いつも同じ入力をするのであれば,Data文としてプログラムに書き込む方法もあります。

 外部のプログラムを利用しないで同様なことをするには,以下にあるコントロール画面
を利用すれば,tbasicのプログラムとして実現することもできます。

---Re2 に続く(長いので2つに分けます)

takeuchi

  • 管理人
  • *****
  • 投稿: 93
Re2:入門の記 その1
« Reply #2 投稿日:: 2019年 7月 16日 , 午後 01:55:06 »
--Re1 からの続き

>準備されているドキュメントやHelpでは、
>コントロール画面の使いこなしについての解説が余りなされていないようですから、
>入門者にとっては、1つのハードルになっています。

 コントロール画面はVisual系の言語にあるものを,tbasicにも取り入れたものですが,入門者用ではなく,
そのため,詳しいドキュメントはまだありません。申し訳ありません。

 ただ基本的な使い方は,ヘルプのコントロール画面操作文の項目にも一応あります。実際の使い方は
詳しいドキュメントがない状況では,サンプルプログラムを見るのが一番良いと思います。
サンプルのAdvancedにある ControlSample.tbt や,UnicodeにあるFrenchGermanInput.tbt
をご覧になれば,コントロール画面の使い方の参考になると思います。

>コントロール画面内でCTextBox(n).Textに直接にデータの内容を書き換えるということができないようで、

可能です。画面で変更したものはそのままCTextBox(n).Textの内容に反映されています。ただし,その表示データ
を実際に使用するには,適当なタイミングでボタン等で処理をする必要があります。

 例えば,下記のプログラムで上部のボックスにtestとあるのを適当に変更して,下の確定ボタンを押してみてください。

'---------------------------例 ここから
CScreen(200,180)
CTextBox(1).Visible = True
CButton(2).Visible = True
CTextBox(3).Visible = True
CButton(4).Visible = True

CTextBox(1).Text = "test"
CTextBox(3).Text = ""
CButton(2).Text = "確定"
CButton(4).Text = "終了"

End

Sub CButton2_Click()
   CTextBox(3).Text =  CTextBox(1).Text
End Sub

Sub CButton4_Click()
   Close CScreen
End Sub
'---------------------------例 ここまで

お試しください。

sokuhan

  • 新ユーザー
  • *
  • 投稿: 19
Re:入門の記 その1
« Reply #3 投稿日:: 2019年 7月 16日 , 午後 03:00:50 »
早速の懇切な回答をありがとうございました。

コピーをとってプリントアウトし、
参考テキストとして、
今後の学習に活用させていただきます。

TBasicの学習に取り掛かったのには、
当然その必要に迫られたからでしたが、
これほど手厚いサポートがいただけるとは、正直なところ、
期待していなかったわけでした。

今後も、このようなご厚情に、過度に依存したり甘えることなく、
出来る限りの努力を傾けていこうと思いました。

拙い試みではありますが、
今後とも宜しくご指導賜れれば幸甚に存じます。

取り急ぎ、お礼申し上げます。