2015年12月05日

「Microsoft Small Basic」の新版を使ってみる(46) - 表示する画像一覧から選択して拡大表示


今回は前回からの続きで、表示している画像のサムネイル一覧から1つのファイルを選択して拡大表示する機能を付加します。前回でも一覧表示する中で有効な最初の画像を拡大表示していました。マウスで左クリックした画像を拡大表示エリアにドラッグ&ドロップする事で可能とします。



今回も確認アプリのソースは掲載しません。

一覧を表示する所までは前回と同じです。マウスで左クリックした位置から対応する画像を認識して、「Shapes」オブジェクトを使って移動します(ここは画像の一部を抽出するアプリと同じです)。一度選択しても右クリックで解除できます。



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




ここまでで一旦インターネット上の画像を扱うアプリは保留としておきます。拡張したい点はあるのですが、大きな見直しが必要な事と、少し使い込んでからその他の改善点も含めて改訂していと思っています。


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

2015年12月04日

「Microsoft Small Basic」の新版を使ってみる(45) - インターネット上の画像ファイルの一覧表示


今回はテクスト・ファイルに記述したインターネット上の画像ファイルURLアドレスを使って全ての画像ファイルを一覧でサムネイル表示するアプリです。これは今後機能を付加していく第1ステップです。



今回も確認アプリのソースは掲載しません。

今回対象とするテキストファイルには文章やHTML・記号列などが入っています。その中で画像のURLは1つのレコードに入れるようにしています。

私の作業の仕方として、文章を書いていきながら裏付けとなるWebページのURLを保持したりする範囲では、テキストファイルのエディタがシンプルで軽量だから、中心的な記録媒体になっています。インターネット上で検索・調査していく中で、取り敢えず条件に合う画像のURLを蓄積していき、後で整理しながら使う画像を選択しています。情報が分散せずに済みます。

画像の選択はブラウザで表示しながらチェックする訳ですが、文章の間に入った画像URLを抜出して違うタブに表示して比較するのは厄介です。

そこでインターネット上のファイルの一覧表示をするアプリを作る事にしました。漸く勉強をした成果が出そうです・・・


さて、アプリの流れとしては、テキストファイルから順次画像URLのレコードだけを抽出して、「ImageList」を配列(行列)として作り順次画面上に配置していく所までです。URLアドレスで「ImageList」オブジェクトの「LoadImage」メソッドを使うと、実際にWebページへアクセスしに行きますので、多くのファイルを扱う時は時間が掛かり見た目に画面が変わりません。ファイル名指定の下に進捗状況を表示する様にしましたが、今後の改善テーマです。
「Image List」を作る際、キーによるインデックスを使う配列(各ファイルの属性を保管)と数値によるインデックス使う配列(複数の画像に対応)の見かけ上の2次元配列(行列)を使っています。


「日記帳」アプリの場合はNullレコードで「End of File」を判定しましたが、今回のケースでは途中にNullレコードもあるので「#END#」を持つレコードで判定しています。これは改良する時に、大きなテキストファイルの一部を対象にしたい時使えそうです。



最終的な実行結果はこちらです。元々23インチのモニターに全画面表示する事を前提にしていますので、文字が見づらい時は全画面表示にするなどしてください。


アプリでは正しいフォルダパスを使っていますが、表示だけはダミーの表示にしています。

このアプリでは画像を拡張子で判断していますが、拡張子を持たなくても画像を表示するWebサイトがあり、テキストファイルに含まれていると表示から一切抜けてしまうのは(メッセージも出せない)今後の課題です。対応のURLが画像であれば、「Microsoft Small Basic」のアプリとして表示できます。



尚、今回の動画には表れていませんが、Webサイトによりブラウザからのアクセスは許可しても、アプリケーションからのアクセスを拒否する場合があります。また、対応ページが削除などされている場合は、その判定までに時間が掛かっており、アクセス拒否のページと含めアプリの実行時間が長くなる事があります。


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

2015年12月02日

「Microsoft Small Basic」の新版を使ってみる(44) - 指定エリアのマウスによる設定


今回は指定したエリア自体をマウスのドラッグ&ドロップにより設定できるようにします。但し処理を簡略化する為、エリア設定では右下へのドラッグだけに限定します。



今回は確認アプリのソースを掲載しません。プログラムとして大分大きくなってきましたし、モードフラッグを使い過ぎて(?)ソースとして余り綺麗ではないので(これまでも良いとは限りませんが・・・)、整理・見直しが必要と考えている為。但し見直し後のソースは掲載を予定しません。

基本的にマウスのドラッグ操作で、画像抽出するエリアの指定と抽出エリアの移動という2つの処理を、モードの設定で切り分けています。その間に、マウスのクリックでエリア指定のキャンセル処理も行っています。



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



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

2015年11月30日

「Microsoft Small Basic」の新版を使ってみる(43) - 画像を抽出する指定エリアの移動


前回は座標で抽出する位置を指定しましたが、今回は更に指定したエリアをマウスのドラッグ&ドロップにより移動させて抽出指定できるようにします。


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





マウス動作のクリック・移動・解除でイベントを取り込む処理及びイベント毎のサブルーチンを追加しています。

指定エリアが画像を超えない様にし、ドラッグ中にも指定座標データを変更しています。



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



尚、前回のソースの中で抽出したエリアのクリアが、1Pixel分ずれるというバグがありましたので修正しました。


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

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) | 体験利用-プログラミング言語 | 更新情報をチェックする