2015年11月29日

「Microsoft Small Basic」の新版を使ってみる(42) - 画像の部分抽出


少し間が空きましたが、今回は読み込んだ画像(拡張子をPNGに制限)の指定部分を抽出する確認アプリです。


確認アプリのソースはこちらこちらこちらです。




画像を読んでサイズを確認する部分はこれまでと類似です。但し、最大400×400の範囲に収まるようにサイズ縮小処理をしています。

抽出する画像の部分は最大150×150に制限チェックし、「GetPixel」と「SetPixel」メッソッドにより色の抽出・設定をしています。

Small Basicでは1次元の配列に制限されているので、配列要素の中に配列を入れる事によって、見かけ上の2次元行列(マトリックス)としています。抽出するだけの範囲では一旦行列にする必要はないのですが、別のアプリで利用する事を想定しています。

アプリ操作の中で最初にエラーチェックする確認をし、少し大きめに部分抽出した後、小さめの部分抽出しています。



最終的な実行結果はこちらです。



 
posted by 鎌倉太郎 at 09:00| 神奈川 ☀| Comment(0) | TrackBack(0) | 体験利用-プログラミング言語 | 更新情報をチェックする

2015年11月16日

「Microsoft Small Basic」の新版を使ってみる(41) - キーボードから入力したキーの認識


今回はキーボードから入力したキーの種別を認識する確認アプリです。


確認アプリのソースはこちらこちらです。



キーを認識する時、引き渡されるコードはこちらを参照してください。

大文字の"B"・"G"・"R"の認識で色を変えたり、"+"・"-"で表示文字サイズを変えたり、矢印で表示エリアを移動できるようにしています。

「Shapes」オブジェクトの「図形化されたテキスト」の概念の使い方にも注目です。



最終的な実行結果はこちらです。


矢印で表示エリアを移動する機能は実行結果に入っていません。


 
posted by 鎌倉太郎 at 09:00| 神奈川 ☀| Comment(0) | TrackBack(0) | 体験利用-プログラミング言語 | 更新情報をチェックする

2015年11月11日

「Microsoft Small Basic」の新版を使ってみる(40) - メッセージとチャイムで時刻通知


今回は1時間又は1分毎にメッセージとチャイムで教えてくれるアプリです。時間に関わるメソッドやアプリ自体のウィンドウを隠すメソッドを確認するアプリになります。


確認アプリのソースはこちらこちらこちらこちらです。





尚、色指定ではこちらを参考に色名称を使っています。



時間を知らせるメッセージを表示した所がこちらです。



 
posted by 鎌倉太郎 at 09:00| 神奈川 ☁| Comment(0) | TrackBack(0) | 体験利用-プログラミング言語 | 更新情報をチェックする

2015年11月10日

「Microsoft Small Basic」の新版を使ってみる(39) - 写真登録できる日記帳


日記帳アプリの機能拡張をしてきましたが、今回は最後に記事に写真を添付できるようにします。特定フォルダに写真を登録しておく前提で、これまで作ってきた日記帳データファイルをそのまま継続利用できるように改訂します。


日記帳アプリの改訂個所ソースはこちらこちらこちらです(一部にこれまでの機能範囲でバグがありましたので修正しています)。


サブルーチン「DialyInputPanel」で写真のファイル名を入力できるようにし、サブルーチン「ButtonList」で「添付」ボタンを設定しています。



サブルーチン「Button_Proc」でボタンクリック後の振り分け処理を追加しています。



サブルーチン「Publish_Proc」・「Read_Article」・「Update_Proc」で、日記データファイルの読み書きで配列「」を付加しています(上掲では「Update_Proc」のみを掲載)。サブルーチン「AddImage_Proc」で写真の読み込み・表示処理などを行います。



最終的な実行状況の動画はこちらです。



 
posted by 鎌倉太郎 at 17:57| 神奈川 ☔| Comment(0) | TrackBack(0) | 体験利用-プログラミング言語 | 更新情報をチェックする

2015年11月07日

「Microsoft Small Basic」の新版を使ってみる(38) - 日記帳の記事検索・更新


今回は日記帳アプリにおける記事内容の更新や日付による検索及びカレンダーから指定日による記事表示ができる機能を実現します。


日記帳アプリの改訂個所ソースはこちらこちらこちらです。


サブルーチン「Button_Proc」では、ボタンクリックを取り込んだ時の振り分け処理を入れています。



サブルーチン「Update_Proc」は更新書き出し処理です。サブルーチン「SearchExecute」は、サブルーチン「Search_Proc」で指定日付と一致するレコードを順次読み込んで検索した後、位置付けられた記事の表示を「PrevNext_Proc」で行います。



サブルーチン「GetSearchKey」と「CalenderDateSearch」は指定日を成型しますが、入力条件はかなり絞った暗黙でのスペックとしているので、実用的には処理の拡充が必要でしょう・・・



最終的な実行状況の動画はこちらです。




できるだけスマートなコードとなるように意識しましたが、もう少し処理内容を整理してスッキリさせる必要があります。この課題はここで扱いません。


 
posted by 鎌倉太郎 at 19:00| 神奈川 ☁| Comment(0) | TrackBack(0) | 体験利用-プログラミング言語 | 更新情報をチェックする

2015年11月06日

「Microsoft Small Basic」の新版を使ってみる(37) - 日記帳の投稿日に連動するカレンダー


今回は投稿済みの記事を順次表示する機能を付加し、記事の投稿日により表示するカレンダー月を変更する日記帳アプリ(途中経過版)です。


多数のコード追加もありましたが、既存部分にも手を加えています。「Small Basic」でどこまでできるかを確認するのが目的なので、ソースコードを見る必要はないと思いますが、確認アプリのソースを全て掲げます。

メインと「Calendar」



「GetRecentDiaryID」、「DialyTableInitialize」、「DialySearchBox」



「DialyInputPanel」、「ButtonList」



「Button_Proc」、「Publish_Proc」



「PrevNext_Proc」、「Add_Proc」、「Read_Article」



「CopeMonth」、「CrLfTrans」



「CrLfTransV」、「GetMonthDays」



「GetDayColor」、「GetWeekDayPosition」、「Get1stDayPosition」



「SetMonthDaysArray」




最終的な実行結果はこちらです。



 
posted by 鎌倉太郎 at 18:35| 神奈川 ☀| Comment(0) | TrackBack(0) | 体験利用-プログラミング言語 | 更新情報をチェックする

2015年11月05日

「Microsoft Small Basic」の新版を使ってみる(36) - 日記帳にカレンダーを表示


前回に「今月のカレンダー」を若干の改訂をしましたが、今回以降では更にカレンダーと連動する日記帳へ拡大します。今回はカレンダーと連動する事はありませんが、日記帳にカレンダー表示を取り込み、日記帳へ新規記事を投稿できる機能をいれます。



確認アプリの改訂した部分のソースはこちらこちらこちらです。




追加したサブルーチンはこれまでのアプリから流用しています。「DialyTableInitialize」は既に作成済み記事数を設定します。「DialySearchBox」は検索ボックスを表示し、「DialyInputPane」は記事の入力画面を生成し、「ButtonList」は記事に対する処理ボタンを作っています。

ボタンをクリックした時の取り込みサブルーチン「Button_Proc」は記事データの書き出しを行います(改行コード変換ルーチンはそのまま流用)。



確認アプリを起動し、新規記事を画面で入力して、「投入」ボタンをクリックする直前の様子がこちら



既に登録記事数が複数ある事に注意してください。作成したファイルの内容がこちら


尚、新規記事投稿以外の処理も入っていますが、何ら確認をしていません。


 
posted by 鎌倉太郎 at 16:30| 神奈川 ☀| Comment(0) | TrackBack(0) | 体験利用-プログラミング言語 | 更新情報をチェックする

2015年11月04日

「Microsoft Small Basic」の新版を使ってみる(35) - カレンダーに日付毎に作ったボタンとそのイベント


前回に造った「今月のカレンダー」アプリを改訂し、カレンダー内に日付毎に作ったボタンをクリックすると、そのイベントを取り込んで何らかの表示ができる事を確認するアプリです。同様な仕組みはこちらの「連続再生できる音楽プレーヤー」アプリで既に使っていますが、次回以降で日記帳アプリとの連携に繋げていきます。



確認アプリの改訂した部分のソースはこちらこちらです。



ボタンクリック後の処理「Button_Proc」を入れただけで、殆ど同じなので改訂した主要部分を赤線で示します。本来は不要ですが、前回とほとんど変わらない事を示す意味で、ボタン化していないカレンダー表示も残しておきます。

「押されたボタンとキャプション」のボタンは今回の範囲では不要ですし、クリックした時の処理も入っていません。



最終的な実行結果はこちらです。



 
posted by 鎌倉太郎 at 08:00| 神奈川 ☀| Comment(0) | TrackBack(0) | 体験利用-プログラミング言語 | 更新情報をチェックする

2015年11月03日

「Microsoft Small Basic」の新版を使ってみる(34) - 「今月のカレンダー」を作る


「今月のカレンダー」を作るアプリです。「Clock」オブジェクトが中心になります。未だ(?)メソッドが定義されていないので、そのプロパティからは「現在」を中心とした「今月」のカレンダーを作る事にします。


確認アプリのソースはこちらこちらこちらです。




カレンダーは「今日」を含む「今月1日」の曜日(WeekDay)が分かれば、日付のリストをカレンダー上に週分割・配置するので、色々な処理の流れを作る事ができます。ここでは(日記の様に)各日付と記事内容を関連付ける事を想定して、各日にちを意識した処理の流れにしています。
閏年の規則は以下の通りで(こちらを参照)、この処理ロジックも入れています。
  • 4年に一回は閏年
  • 但し100年に一回は閏年ではない平年
  • 但し400年に一回は閏年

サブルーチン「SetMonthDaysArray」は各月が何日まであるかの配列を生成します。
サブルーチン「GetWeekDayPosition」は「今日」の曜日を曜日配列のインデックスに変換し、サブルーチン「Get1stDayPosition」は「今月1日」の曜日を計算しています。
サブルーチン「GetMonthDays」は実際に「今月1日」から順に曜日を配置していきます。

(注:幾つかのパターンで確認をとっていますが、バグがあるかも知れません・・・)



最終的な実行結果はこちらです。



 
posted by 鎌倉太郎 at 09:00| 神奈川 ☁| Comment(0) | TrackBack(0) | 体験利用-プログラミング言語 | 更新情報をチェックする

2015年11月01日

「Microsoft Small Basic」の新版を使ってみる(33) - 連続再生できる音楽プレーヤー


前回の「簡単な音楽プレーヤー」を改訂して、選択した楽曲を連続的に再生できるようにします。



確認アプリのソースはこちらこちらこちらです。




ミュージック一覧にある楽曲をアプリ上で配列「MusicList」によって管理し、選択された楽曲は対応する配列「FlagList」でチェックされた/いないを維持します。

デバック中に分かった事で、イベントを取り込んだ後に一部の表示を追記しようとしてもできません。画面をクリアして表示を全てし直す必要があります。



起動直後の様子はこちら、楽曲を流している状態の動画はこちらです。





 
posted by 鎌倉太郎 at 09:00| 神奈川 ☀| Comment(0) | TrackBack(0) | 体験利用-プログラミング言語 | 更新情報をチェックする