2014年02月06日

基本的なウィンドウ部品の配置例 その4 リストボックス+ボタン4個

今回は、ウィンドウの左側にリストボックスを配置し、その右側にボタンを4個 配置したウィンドウです。
4個のボタンのうち、3個は、リストボックス上で項目を上に移動・下に移動・削除するためのボタンで、残りのボタンは、ウィンドウを閉じるボタンです。

※今回は分量が多いため、プログラムだけを掲載し、説明は次の記事に回します。

──────────────────────────────
■字下げを含んだプログラム(ウィンドウのみ)
──────────────────────────────
「Produire.WinControl.dll」を利用する

リストボックスウィンドウを表示する
待機する

リストボックスウィンドウとは
  ウィンドウを継承する

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

  初期化する手順
    この内部領域大きさを{427、297}に変える
    この内容を「リストボックス」に変える
    このドラッグドロップを○に変える
    この初期位置を「中央」に変える

    ラベル1というラベルを作る
      その内容を「一覧(&L)」に変える
      その位置と大きさを{13、13、39、12}に変える

    リストボックス1というリストボックスを作る
      その項目高さを12に変える
      その位置と大きさを{13、29、316、256}に変える

    ボタン1というボタンを作る
      その内容を「上へ(&U)」に変える
      その位置と大きさを{337、29、75、23}に変える

    ボタン2というボタンを作る
      その内容を「下へ(&D)」に変える
      その位置と大きさを{338、59、75、23}に変える

    ボタン3というボタンを作る
      その内容を「削除(&T)」に変える
      その位置と大きさを{338、89、75、23}に変える

    ボタン4というボタンを作る
      その内容を「閉じる(&C)」に変える
      その位置と大きさを{338、261、75、23}に変える

  終わり

終わり

──────────────────────────────
■字下げを削除したプログラムと、簡単な使用例
 ※プログラムのみ。説明は次の記事で。
──────────────────────────────

「Produire.WinControl.dll」を利用する

リストボックスウィンドウを表示する
待機する

リストボックスウィンドウとは
ウィンドウを継承する

はじめの手順
初期化する
配列は、{「札幌」、「東京」、「名古屋」、「大阪」、「福岡」}
リストボックス1の一覧を、配列に変える
リストボックス1の番号を1に変える
終わり

初期化する手順
この内部領域大きさを{427、297}に変える
この内容を「都市名リスト」に変える
この初期位置を「中央」に変える

ラベル1というラベルを作る
その内容を「一覧(&L)」に変える
その位置と大きさを{13、13、39、12}に変える

リストボックス1というリストボックスを作る
その項目高さを12に変える
その位置と大きさを{13、29、316、256}に変える

ボタン1というボタンを作る
その内容を「上へ(&U)」に変える
その位置と大きさを{337、29、75、23}に変える

ボタン2というボタンを作る
その内容を「下へ(&D)」に変える
その位置と大きさを{338、59、75、23}に変える

ボタン3というボタンを作る
その内容を「削除(&T)」に変える
その位置と大きさを{338、89、75、23}に変える

ボタン4というボタンを作る
その内容を「閉じる(&C)」に変える
その位置と大きさを{338、261、75、23}に変える
この取消ボタンを、ボタン4に変える

終わり

ーー上に移動
ボタン1がクリックされた時の手順
もし、リストボックス1の個数が0なら
「項目がありません。」を表示する
でないなら
配列は、リストボックス1の一覧
値Aは、リストボックス1の番号
もし、値Aが「1」なら
「一番上の項目です。」を表示する
手順から抜ける
でないなら
値Bは、値A-1
新配列は、配列から[値A]番目と[値B]番目を交換したもの
リストボックス1をクリアする
リストボックス1を更新開始する
リストボックス1の一覧を、新配列に変える
リストボックス1を更新終了する
リストボックス1の番号を[値B]に変える
もし終わり
もし終わり
終わり

ーー下に移動
ボタン2がクリックされた時の手順
もし、リストボックス1の個数が0なら
「項目がありません。」を表示する
でないなら
配列は、リストボックス1の一覧
値Aは、リストボックス1の番号
もし、値Aが[リストボックス1の個数]なら
「一番下の項目です。」を表示する
手順から抜ける
でないなら
値Bは、値A+1
新配列は、配列から[値A]番目と[値B]番目を交換したもの
リストボックス1をクリアする
リストボックス1を更新開始する
リストボックス1の一覧を、新配列に変える
リストボックス1を更新終了する
リストボックス1の番号を[値B]に変える
もし終わり
もし終わり
終わり

ーー削除
ボタン3がクリックされた時の手順
もし、リストボックス1の個数が0なら
「項目がありません。」を表示する
でないなら
配列は、リストボックス1の一覧
値Aは、リストボックス1の番号
もし、値Aが「0」なら
「ファイルを選択してから操作して下さい。」を表示する
でないなら
新配列は、配列の[値A]番目を削除したもの
リストボックス1をクリアする
リストボックス1を更新開始する
リストボックス1の一覧を、新配列に変える
リストボックス1を更新終了する
個数は、リストボックス1の個数
もし、値A≦個数なら
リストボックス1の番号を[値A]に変える
でないなら
値Bは、値A-1
リストボックス1の番号を[値B]に変える
もし終わり
もし終わり
もし終わり
終わり

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

終わり

──────────────────────────────
【produireの最新記事】
posted by yanikun at 09:14| Comment(0) | TrackBack(0) | produire

2014年02月05日

プロデルから PC-talkerにしゃべらせるプラグイン

今回は、ウィンドウの配置例は一回お休みして、プロデルのプログラムから PC-talkerにしゃべらせる、つまり、PC-talkerに文字列を読み上げさせることの出来るプラグインを紹介します。

このプラグインは、くよう さんが作成されたもので、下記のページからダウンロードすることが出来ます。説明もこのページに書かれています。

※注:当然ですが、PC-talkerのインストールされているパソコンでしか機能しません。

プロデル用PC-Talker発声プラグイン : (Dreamのお好み情報箱)
http://blog.sf-dream.com/archives/2014/01/pctalker.html
posted by yanikun at 07:24| 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