2014年02月01日

基本的なウィンドウ部品の配置例 その1 入力ウィンドウ

こんにちは、yanikunです。ご無沙汰でした。
久しぶりにブログを更新します。

これまでも、いくつかウィンドウに部品を配置したプログラムの例を掲載してきましたが、今回から何回か、基本的な部品を配置したウィンドウのプログラムを掲載することにします。

ウィンドウを使わずに、文字列や配列を扱うプログラムも出来ますが、用途や機能が限定されがちです。また、古くからのパソコンユーザーはともかく、私も含めて新しいユーザーは、ウィンドウ上にボタンやリストなどが配置されたプログラムに馴染んでいるため、使い勝手の面からもウィンドウは必要だというのが私の考えです。

なお、前に書いた記事の内容を、かなり忘れてしまっているために、重複した記述があるかもしれませんが、ご容赦を。

記事のスタイルは、次のようになります。

1.字下げを含んだプログラム。
※字下げは Tab を全角スペース×2文字に置き換えています。

2.字下げを削除したプログラムと、簡単な使用例。
※プログラムの説明は、こちらに記載します。

■部品の配置の順番について

私は、ウィンドウの中での部品の配置は、出来るだけタブインデックスの順番通りにプログラムを書くようにしています。
タブインデックスというのは、ウィンドウ上でTabキーを押して、フォーカスを移動していく時の順番のことです。

その移動順を3に変える

という書き方もプロデルにはあるのですが、部品の数が多くなってくると、訳がわからなくなって 混乱してしまうため、タブインデックスの順番通りに書くようにしている、というわけです。

──────────────────────────────
■字下げを含んだプログラム(ウィンドウのみ)
──────────────────────────────

入力ウィンドウを表示する
待機する

入力ウィンドウとは
  ウィンドウを継承する

  はじめの手順
    初期化する
    ーー貼り付けた部品に対する操作をここに書きます
  終わり

  初期化する手順
    この内部領域大きさを{262、96}に変える
    この内容を「入力ウィンドウ」に変える
    このドラッグドロップを○に変える
    この初期位置を「中央」に変える

    ラベル1というラベルを作る
      その内容を「入力して下さい。」に変える
      その位置と大きさを{13、13、39、12}に変える

    テキスト1というテキストを作る
      その位置と大きさを{13、29、238、19}に変える

    ボタン1というボタンを作る
      その内容を「OK」に変える
      その位置と大きさを{95、60、75、23}に変える

    ボタン2というボタンを作る
      その内容を「キャンセル」に変える
      その位置と大きさを{176、60、75、23}に変える

  終わり

終わり

──────────────────────────────
■字下げを削除したプログラムと、簡単な使用例
──────────────────────────────

入力ウィンドウを表示する
待機する

入力ウィンドウとは
ウィンドウを継承する

はじめの手順
初期化する
ーー貼り付けた部品に対する操作をここに書きます
//ウィンドウを作成(初期化)したあとに、ウィンドウ上の部品に対して
//何らかの操作や処理・入力などの必要があれば、ここに命令文を書きます。

終わり

初期化する手順
この内部領域大きさを{262、96}に変える
この内容を「入力ウィンドウ」に変える
このドラッグドロップを○に変える
// ↑ この一行は、お約束で自動的に書き込まれます。不要なら削除して下さい。

この初期位置を「中央」に変える
//Windows標準のダイアログ(メッセージ)ボックスは、画面中央に表示されますが、
//自分で作成したウィンドウは、表示位置が一定ではありません。
//視覚障害者の中で、視野が狭い弱視のユーザーには操作が困難になります。
//そのため、ウィンドウの初期の表示位置を中央に指定しています。
//ただし、絶対必要というものではありません。

ラベル1というラベルを作る
その内容を「あなたの名前を入力して下さい。」に変える
//次のテキスト部品に、名前を入力するよう促しています。
//必要に合わせてこのラベルの内容を書き換えて下さい。
//PC-talkerでは、[ラベルの内容] のエディット 文字入力 とガイドされます。

その位置と大きさを{13、13、39、12}に変える

テキスト1というテキストを作る
その位置と大きさを{13、29、238、19}に変える
//パスワードを入力してもらう場合は、
//そのパスワード文字を「●」に変える
//と書くことによって、入力された文字が隠されて ● で表示されます。
//また、PC-talkerでは「パスワード入力」とガイドされるようになります。
//他には「*」も指定できます。

ボタン1というボタンを作る
その内容を「OK」に変える
その位置と大きさを{95、60、75、23}に変える

ボタン2というボタンを作る
その内容を「キャンセル」に変える
その位置と大きさを{176、60、75、23}に変える

この決定ボタンを、ボタン1に変える
//決定ボタンというのは、ウィンドウ上で Enterキーが押された時に
//どのボタンの処理が実行されるのかを指定するものです。
//この例では、ボタン1 = 「OK」というボタンをクリック または押した時と
//同じ手順が実行されます。
//ユーザーが、変換文字の確定などと間違えて操作することが予想される時は、
//この設定はしないほうがいいでしょう。

この取消ボタンを、ボタン2に変える
//取消ボタンというのは、ウィンドウ上で Escapeキーが押された時に
//どのボタンの処理が実行されるのかを指定するものです。
//この例では、ボタン2 = 「キャンセル」というボタンをクリック または押した時と
//同じ手順が実行されます。

終わり

ーーボタン1 = OK
ボタン1がクリックされた時の手順
「こんにちは、[テキスト1の内容]さん。」を表示する
//テキスト1に入力された文字列 = [テキスト1の内容] を変数にして、
//「こんにちは、[テキスト1の内容]さん。」というメッセージを表示します。

終わり

ーーボタン2 = キャンセル
ボタン2がクリックされた時の手順
自分を閉じる
//処理をキャンセルして[自分] = 入力ウィンドウを閉じます。

終わり

終わり

──────────────────────────────
posted by yanikun at 10:23| Comment(0) | TrackBack(0) | produire

2014年02月02日

基本的なウィンドウ部品の配置例 その2 参照ウィンドウ

今回は、ファイル / フォルダのパスを設定するためのウィンドウを紹介します。
外部アプリケーションや、ルートのフォルダを指定するために、いろいろなプログラムの設定メニューなどから開く、例のダイアログボックスです。

──────────────────────────────
■字下げを含んだプログラム(ウィンドウのみ)
──────────────────────────────

ウィンドウ1を表示する
待機する

ウィンドウ1とは
  ウィンドウを継承する

  はじめの手順
    初期化する
    ーー貼り付けた部品に対する操作をここに書きます
  終わり

  初期化する手順
    この内部領域大きさを{353、103}に変える
    この内容を「参照画面」に変える
    このドラッグドロップを○に変える
    この初期位置を「中央」に変える

    ラベル1というラベルを作る
      その内容を「ファイル名」に変える
      その位置と大きさを{13、13、39、12}に変える

    テキスト1というテキストを作る
     その位置と大きさを{13、29、244、19}に変える

    ボタン1というボタンを作る
      その内容を「参照」に変える
      その位置と大きさを{264、24、75、23}に変える

    ボタン2というボタンを作る
      その内容を「OK」に変える
      その位置と大きさを{182、67、75、23}に変える

    ボタン3というボタンを作る
      その内容を「キャンセル」に変える
      その位置と大きさを{264、67、75、23}に変える

  終わり

終わり

──────────────────────────────
■字下げを削除したプログラムと、簡単な使用例
1.実行ファイルのパスを設定する
──────────────────────────────

ウィンドウ1を表示する
待機する

ウィンドウ1とは
ウィンドウを継承する

はじめの手順
初期化する
ーー貼り付けた部品に対する操作をここに書きます
終わり

初期化する手順
この内部領域大きさを{353、103}に変える
この内容を「参照画面」に変える
このドラッグドロップを○に変える
この初期位置を「中央」に変える

ラベル1というラベルを作る
その内容を「ファイル名」に変える
その位置と大きさを{13、13、39、12}に変える

テキスト1というテキストを作る
その位置と大きさを{13、29、244、19}に変える

ボタン1というボタンを作る
その内容を「参照」に変える
その位置と大きさを{264、24、75、23}に変える

ボタン2というボタンを作る
その内容を「OK」に変える
その位置と大きさを{182、67、75、23}に変える

ボタン3というボタンを作る
その内容を「キャンセル」に変える
その位置と大きさを{264、67、75、23}に変える

この決定ボタンを、ボタン2に変える
この取消ボタンを、ボタン3に変える

終わり

ーー参照
ボタン1がクリックされた時の手順
開く画面の種類を、「アプリケーション|*.exe|すべてのファイル|*.*」に変える
//この例では、[開く画面]で表示されるファイルの種類を、
//実行ファイル .exe に絞り込んでいます。
//一応、念のために すべてのファイル をドロップダウンリストの選択肢に
//加えています。

開く画面のフォルダ名を、「[プログラムファイル]」に変える
//プロデルの基本フォルダの記述から[プログラムファイル]を指定します。
//32bit版Windowsでは C:\Program Files\
//64bit版Windowsでは C:\Program Files (x86)\
//のフォルダが、それぞれ開いた状態でダイアログボックスが表示されます。

開く画面を表示する
//Windows標準の「ファイルを開く」ダイアログボックスが表示されます。

もし 開く画面のキャンセルは、○ なら 手順から抜ける
//ファイルを開くダイアログボックスがキャンセルされた時は、
//以降の処理はキャンセルされます。

テキスト1の内容を、「[開く画面のファイル名]」に変える
//ファイルを開くダイアログボックスの、ファイル名の欄の
//ファイル名を[開く画面のファイル名]という変数に代入して、
//それを、ウィンドウのテキスト1に入力します。

終わり

ーーOK
ボタン2がクリックされた時の手順
もし、テキスト1の内容が「」でないなら
//ユーザーが入力していなかったり、参照ボタン(ボタン1)から
//ファイル名を入力していない場合を想定して、テキスト1が空なら、
//以降の処理を実行しない、言い換えると、テキスト1に入力されている時だけ
//以降の処理が実行されるように、もし文を使って指定しておきます。

「[テキスト1の内容] を登録します。」を情報アイコンで表示する
//ここではメッセージボックスで結果を表示していますが、
//実際のプログラムでは、設定ファイルに書き込んだりする手順が
//必要になります。
//その場合は、設定ファイルに書き込むなどの命令文を書いてから
//メッセージを表示するようにします。

自分を閉じる
//一連の処理を終えてから、ウィンドウを閉じます。

もし終わり
終わり

ーーキャンセル
ボタン3がクリックされた時の手順
自分を閉じる
終わり

終わり

──────────────────────────────
■字下げを削除したプログラムと、簡単な使用例
2.ルートのフォルダを設定する
──────────────────────────────

ウィンドウ1を表示する
待機する

ウィンドウ1とは
ウィンドウを継承する

はじめの手順
初期化する
ーー貼り付けた部品に対する操作をここに書きます
終わり

初期化する手順
この内部領域大きさを{353、103}に変える
この内容を「参照画面」に変える
このドラッグドロップを○に変える
この初期位置を「中央」に変える

ラベル1というラベルを作る
その内容を「フォルダ名」に変える
その位置と大きさを{13、13、39、12}に変える

テキスト1というテキストを作る
その位置と大きさを{13、29、244、19}に変える

ボタン1というボタンを作る
その内容を「参照」に変える
その位置と大きさを{264、24、75、23}に変える

ボタン2というボタンを作る
その内容を「OK」に変える
その位置と大きさを{182、67、75、23}に変える

ボタン3というボタンを作る
その内容を「キャンセル」に変える
その位置と大きさを{264、67、75、23}に変える

この決定ボタンを、ボタン2に変える
この取消ボタンを、ボタン3に変える

終わり

ーー参照
ボタン1がクリックされた時の手順
フォルダ選択画面の説明を、「フォルダを選択してから OK のボタンを押して下さい。」に変える
//この説明は、任意のものに変えることが出来ます。

フォルダ選択画面を表示する
//Windows標準のフォルダ選択のダイアログボックスが表示されます。

もしフォルダ選択画面のキャンセルなら、手順から抜ける
テキスト1の内容を、フォルダ選択画面のフォルダ名に変える
//ダイアログボックスで選択したフォルダ名を、テキスト1に入力します。

終わり

ーーOK
ボタン2がクリックされた時の手順
もし、テキスト1の内容が「」でないなら
「[テキスト1の内容] を登録します。」を情報アイコンで表示する
自分を閉じる
もし終わり
終わり

ーーキャンセル
ボタン3がクリックされた時の手順
自分を閉じる
終わり

終わり

──────────────────────────────
posted by yanikun at 03:26| Comment(0) | TrackBack(0) | produire

2014年02月03日

基本的なウィンドウ部品の配置例 その3 テキスト領域とボタン×4個

今回 紹介するのは、簡単な文字列の処理を行なったり、文字列処理のプログラムを検証したりする時に使うためのウィンドウで、テキストエディタではありません。

テキストエディタについては、
プロデルのインストールフォルダ > サンプル > アプリ > メモ帳.rdr
を参考にして下さい。

──────────────────────────────
■字下げを含んだプログラム(ウィンドウのみ)
──────────────────────────────

テキストウィンドウを表示する
待機する

テキストウィンドウとは
  ウィンドウを継承する

  はじめの手順
    初期化する
    ーー貼り付けた部品に対する操作をここに書きます
  終わり

  初期化する手順
    この内部領域大きさを{540、416}に変える
    この内容を「テキストウィンドウ」に変える
    このドラッグドロップを○に変える
    この初期位置を「中央」に変える

    ラベル1というラベルを作る
      その内容を「テキスト」に変える
      その位置と大きさを{13、13、39、12}に変える

    テキスト領域1というテキスト領域を作る
      その位置と大きさを{13、28、515、310}に変える

    ボタン1というボタンを作る
      その内容を「ボタン1」に変える
      その位置と大きさを{13、351、75、23}に変える

    ボタン2というボタンを作る
      その内容を「ボタン2」に変える
      その位置と大きさを{95、350、75、23}に変える

    ボタン3というボタンを作る
      その内容を「ボタン3」に変える
      その位置と大きさを{177、350、75、23}に変える

    ボタン4というボタンを作る
      その内容を「閉じる」に変える
      その位置と大きさを{453、354、75、23}に変える

    ラベル2というラベルを作る
      その内容を「ファイル名」に変える
      その位置と大きさを{14、388、39、12}に変える

    テキスト1というテキストを作る
      その位置と大きさを{64、385、374、19}に変える
      その読み取り専用を○に変える

  終わり

終わり

──────────────────────────────
■字下げを削除したプログラムと、簡単な使用例

@ボタンを押した(クリックした)時の手順は、任意の手順に書き替えて下さい。

Aこのプログラムの例では、テキスト領域の内容を保存する手順を紹介しています。
その際、既存のファイルから読み込んで上書き保存するか、名前を付けて保存するかを、ファイル名(テキスト1の内容)の有無で判断しています。

他にも、ファイル名(パス)を一時保管する方法はあるのですが、ここでは簡易な手段として、
[開く画面]から読み込んだ時は、テキスト部品にファイル名を表示するようにし、
直接入力やコピペの時は、ファイル名が表示されないようにしていて、
それ(テキスト1の内容)を、判断の材料にしています。

既存のファイルから読み込んだテキストに、別の名前を付けて保存したい時は、他のボタンなどに、その手順を割り当てて下さい。

B空行を処理する手順 = 二つ以上の連続した空行を一つの空行にする手順は、最初は正規表現をいろいろいじったり、配列を使ったりしたのですが、どうしてもうまく処理出来ずに、筋の悪い反則技に走ってしまいました。
良い子の皆さんは、決してマネをしないで下さい。
──────────────────────────────

テキストウィンドウを表示する
待機する

テキストウィンドウとは
ウィンドウを継承する

はじめの手順
初期化する
ーー貼り付けた部品に対する操作をここに書きます

//起動と同時にテキストを読み込みたい時は、下のように書きます。
//テキスト領域1へ、(「D:\Documents\example.txt」から読み込んだもの)を挿入する

終わり

初期化する手順
この内部領域大きさを{540、416}に変える
この内容を「テキストウィンドウ」に変える
このドラッグドロップを○に変える
この初期位置を「中央」に変える

ラベル1というラベルを作る
その内容を「テキスト」に変える
その位置と大きさを{13、13、41、12}に変える

テキスト領域1というテキスト領域を作る
その位置と大きさを{13、28、515、310}に変える
その折り返しを○に変える

//折り返しは任意です。必要がなければ、この行は削除して下さい。
//テキスト領域と書式付きテキストでは、折り返しの桁数を
//指定することが出来ません。
//テキスト領域の大きさと、フォントサイズの指定で、
//折り返しの桁数(文字数)を調整して下さい。

そのフォントサイズを12に変える

ボタン1というボタンを作る
その内容を「開く」に変える
その位置と大きさを{13、351、75、23}に変える

ボタン2というボタンを作る
その内容を「空行を処理」に変える
その位置と大きさを{95、350、75、23}に変える

ボタン3というボタンを作る
その内容を「保存」に変える
その位置と大きさを{177、350、75、23}に変える

ボタン4というボタンを作る
その内容を「閉じる」に変える
その位置と大きさを{453、354、75、23}に変える

ラベル2というラベルを作る
その内容を「ファイル名」に変える
その位置と大きさを{14、388、39、12}に変える

テキスト1というテキストを作る
その位置と大きさを{64、385、374、19}に変える
その読み取り専用を○に変える

終わり

ーー開く
ボタン1がクリックされた時の手順
開く画面の種類を、「テキストファイル|*.txt|HTML文書|*.htm;*.html|すべてのファイル|*.*」に変える
開く画面のフォルダ名を、「[マイドキュメント]」に変える
開く画面を表示する
もし 開く画面のキャンセルは、○ なら 手順から抜ける
テキスト1の内容を、「[開く画面のファイル名]」に変える

//Windows標準の「ファイルを開く」ダイアログボックスでは、
//ファイル名はフルパスではなく、ファイル名だけが表示されていますが、
//[開く画面のファイル名]という変数に入れる時には、
//選択されたファイルのフルパスが取得されています。

文字1は、「[開く画面のファイル名]」から読み込んだもの
テキスト領域1の内容を、文字1に変える
テキスト領域1を0に移動する

//文書が読み込まれた直後は、カーソルが文字列の最後に位置しています。
//それを、テキスト領域の一番最初の位置 0 に移動させます。

終わり

ーー空行の処理
ボタン2がクリックされた時の手順

//以下の手順は推奨されない手順のため、説明は省きます。
//注:文字列の中に , が含まれていると、うまく動作しません。

配列は、(テキスト領域1の内容)を「[改行]」で区切ったもの
文字2は、正規表現によって配列を「({|})」から「」へ置換したもの
置換後は、文字2から「,,,,,」を「,,」へ置換したもの
3回 繰り返す
置換後は、置換後から「,,,,」を「,,」へ置換したもの
置換後は、置換後から「,,,」を「,,」へ置換したもの
繰り返し終わり
新配列は、置換後を「,」で区切ったもの
新文字は、新配列を「[改行]」で繋げたもの
テキスト領域1の内容を、新文字に変える
テキスト領域1を0に移動する
テキスト領域1にフォーカスする
終わり

ーー保存
ボタン3がクリックされた時の手順
ファイル名は、テキスト1の内容
もし、ファイル名が「」なら

//ファイル名 = テキスト1の内容が空の場合は、既存のファイルから
//読み込んだ文字列ではないと判断します。

名前付け保存する

//ここでは、名前を付けて保存 = 名前付け保存する手順を取り出して、
//別の手順として小分けしています。
//一つの手順が長くなった(なりそうな)時は、このように、
//別の手順として取り出して、その手順を元の手順の中で処理するように
//書くことが出来ます。

手順から抜ける
でないなら

//ファイル名 = テキスト1の内容が空ではなく、ファイルパスが入力されていれば、
//そのファイルに上書き保存します。

テキスト領域1の内容を、「[ファイル名]」へ保存する
もし終わり
終わり

ーー名前付け保存
名前付け保存する手順
保存画面のフォルダ名を、[マイドキュメント]に変える
保存画面の種類を、「テキストファイル|*.txt|HTML文書|*.htm;*.html|すべてのファイル|*.*」に変える
保存画面を表示する

//Windows標準の「名前を付けて保存」のダイアログボックスが表示されます。

もし保存画面のキャンセルなら 手順から、抜ける
ファイル名は、保存画面のファイル名
テキスト領域1の内容を、「[ファイル名]」へ保存する
終わり

ーー閉じる
ボタン4がクリックされた時の手順
自分を閉じる
終わり

終わり

──────────────────────────────
posted by yanikun at 16:52| Comment(0) | TrackBack(0) | produire