■■===============【プログラムメールマガジン 色彩】===============■■■ 日本語プログラミング言語なでしこ&ひまわり、WEB開発環境葵情報マガジン ┏━━━━━━━━┓ ┃No6     ┗━━━━━━━━┛  梅雨の季節、皆さんいかがお過ごしでしょうか。  季節の変わり目は、体調を崩しやすいもの、健康に気をつけながら  今月もプログラミングを楽しみましょう。  では、今回のラインナップはこちらです。  【01】 GUIマスターへの道 第6回 タスクトレイ  【02】 RPG感覚で「なでしこ本」を学習中  第6回 初心者でも、陰ながら努力しています  【03】 Word/Excel/Powrpointとの連携 第6回 Excelがインストールされている?  【04】 ChocoのDB(データベース)を操作しましょうコーナー 第3回 アプリケーションを作ろう!  【05】 なでしこの最新命令を使ってみよう 第5回 命令「メモリ使用率取得」  【06】 ポ・イ・ン・ト 第6回 ホップ・ステップ・ジャンプ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┏━┓ ┃01  テーマ名:GUIマスターへの道  ┃      第6回 タスクトレイ 執筆:はやしま ┗━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ なでしこは、GUIベースのアプリが簡単に書けることも大きな魅力のひとつです が、マスターするのはなかなか大変です。 このコーナーでは、GUI部品の説明を、GUI部品を習得するためのコツも含めご紹 介したいと思います。基本姿勢は、「習うより慣れろ!」です。 今回のテーマは、「タスクトレイ」です。 Windowsの画面の通常右下に存在する、アイコンが並んでいるエリアをタスクト レイと呼びます。なでしこでは、ここにフォームを格納することが簡単にできる ようになっています。 といっても、タスクトレイというGUI部品があるわけではなく、フォームという GUI部品の機能として、タスクトレイに格納したり取り出したりする機能が用意 されている形になります。 サンプルプログラム #--------+---------+---------+---------+---------+---------+ トレイ格納ボタンとはボタン # 1 そのクリックした時は # 2 母艦をタスクトレイ入れる # 3 母艦のタスクトレイクリックした時は # 4 母艦をタスクトレイ出す # 5 母艦の可視はオン # 6 #--------+---------+---------+---------+---------+---------+ このサンプルプログラムは、母艦(メインフォーム)をタスクトレイに格納するシ ンプルなプログラムです。 実行すると、トレイ格納と書かれたボタンが置かれたフォーム(母艦)が表示され ます。そのボタンを押すと、そのフォームがタスクトレイに格納されます。そし て、格納されたタスクトレイのアイコンを、マウスで左クリックすると、またそ のフォームが表示されます。 ポイント! 6行目は、以前のバージョンでは特に必要なかったと思うのですが、最近のバー ジョンでは、これを入れておかないと、タスクトレイのアイコンをクリックして も、フォームが表示されず、タスクトレイのアイコンも消えてしまい、困ったこ とになります。必ず入れるようにしましょう。 (補足:2008/06/09 version 1.5041にて、上記への対応が入り、6行目なしでも 表示されるようになっております) 今回は、ここまでです。それでは、また次回! ━[PR]━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ なでしこを学習するなら・・・なでしこ学習帳@はてな http://nadesiko.g.hatena.ne.jp/ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┏━┓ ┃02  テーマ名: RPG感覚で「なでしこ本」を学習中 ┃ 第6回  初心者でも、陰ながら努力しています ┃                           執筆:matumatu ┗━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.初心者でも、陰ながら努力しています   今までに「なでしこ本」の付録CDROMに入っている   プログラムの内、139本を学習し、学習過程を公表して来ました。   まだ公表していなかった、「陰ながら努力」の部分を   メルマガで公表します。   実は、現在では入手困難になった、付録CDROMに入っている   プログラムを、なでしこ開発者は親切心で、「なでしこ」を   インストールすると、自動的に保管されるsampleに、   混ぜて配布しようと試みているのでは? と想定し、  「なでしこ本」の学習をしながら、sampleに同一ファイル名   が有るかを、その都度検索していました。   現在、下記の6本のプログラムが、付録CDROMに入っている   プログラムと、同じファイル名であることを見つけました。   つまり、約4%含まれていました。   @ 日記191119 CDROM01-01 ファイル圧縮.nako  43 B      sample    ファイル処理   ファイル圧縮.nako  535 B   A 日記191124 CDROM01-02 お絵かき.nako   1,326 B      sample    グラフィック   お絵かき.nako   1,326 B   B 日記191126 CDROM01-02 増殖クッキー.nako  939 B      sample    グラフィック   増殖クッキー.nako  939 B   C 日記191210 CDROM01-02 トラ模様.nako    842 B      sample    グラフィック   トラ模様.nako    842 B   D 日記200126B CDROM02-04 数当てゲーム.nako  404 B      sample    ゲーム      数当てゲーム.nako 7,183 B   E 日記200517 CDROM05-01               ENTERでフォーカス移動.nako  384 B      sample    vnako-標準GUI 部品のサンプル               ENTERでフォーカス移動.nako  760 B   上記のファイル容量を比較すると分かりますが、   同一プログラム50%、CDROM当時よりも、高度に改良   して配布中が50%でした。  「なでしこ」開発者の、付録CDROM 未入手の方への配慮と、   膨大なsampleを作成したり、付録CDROMのプログラムを   さらに高度に改良されている開発者のパワーに圧倒されました。   今回、なでしこ(2008/06/09 version 1.5041)   インストール時のsampleに限定して、手作業で検索し、   比較したため、約3時間も費やしました。   後から、「なでしこ」で自動的に「CDROM」と「sample」   を検索・比較するプログラムを作るべきだったと後悔しています。   もっとも、初心者の私が、検索・比較するプログラムを作ると   デバッグ等で、もっと時間がかかると思います。 (^^;) 2.現在の、なでしこ本学習レベル判定結果   ・ 「 RPGレベル判定9.nako 」は、現在Ver 0.9     で進化が止まっています。   ・ 学習レベルの判定機能と、日記作成支援機能を兼ねています。   ・ 下記は、日記作成支援機能で、自動的に作成されたデーター     を少し加工したもので、はてな記法で出力しています。     * 学習レベルを判定した結果 LV = 5: HP = 247 : MP = 250     - 完了予想日数 = 483 → 546 大幅に悪化     --完了予想年月日 = → 2009/12/12 大幅に悪化     --- はてなカウンター値 = 59536 もうすぐ、超キリ番です。     ---- はてな有料カウンター値 = 00001836     ----学習開始日から本日までの日数 =213日   ☆★ サイト:http://nadesiko.g.hatena.ne.jp/matumatuh18/   ■□ はてなキーワード = なでしこ本学習レベル判定 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┏━┓ ┃03  テーマ名:Word/Excel/Powrpointとの連携              ┃      第6回 Excelがインストールされている? 執筆:粗茶 ┗━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ こんにちは。粗茶です。 Excelを中心に「なでしこ」で仕事を効率化するテクニックを紹介しています。 今回もExcel関係の新命令を解説します。 今回は「エクセルインストールチェック」命令です。 ※「エクセル重複削除」命令については、クジラ飛行机氏が連載中の  「仕事に役立つプログラミング入門(第76回)」で解説されています。  http://pc.nikkeibp.co.jp/article/column/20080523/1003154/ Excel関係のプログラムを配布したときなど、環境の異なるPCで プログラムを実行しなければならないことがあります。 もしも実行するPCにExcelがインストールされていなければ、 プログラムを実行することができず、エラーとなってしまいます。 クライアントからExcelがインストールされていると聞かされていたのに 実際はOpenOffice.orgのCALCだったことがあります。 これを回避するために、事前にそのPCにエクセルがインストールされて いるかどうかを判断することができるようになりました。 //ここから エクセルインストールチェック。 もしそれがはいならば   「エクセルがインストールされています!」と表示。 違えば   「エクセルをインストールしてください!」と表示。 //ここまで 「エクセルインストールチェック」命令は、そのPCにExcelが インストールされているか調べて、その結果を変数「それ」に 返します。 書式:エクセルインストールチェック 返り値:それ=0(いいえ) インストールされていません     それ=1(はい)  インストールされています Excelの他、同様にしてWordやPowerPointについても インストールされているかどうか調べる命令があります。 「ワードインストールチェック」命令 「パワポインストールチェック」命令 プログラムを他人に使用してもらうには、 あらゆるエラーを予測して、これに備える必要があります。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┏━┓ ┃04 テーマ名:ChocoのDB(データベース)を操作しましょうコーナー ┃   第3回 アプリケーションを作ろう!【ログイン編】 執筆:Choco ┗━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ なでしこでDBを利用したアプリケーションを作れると、実務に役立ちますよ。 今回からは、簡単なアプリケーションを作って行きましょう。 ■Part1:機能と画面について■ 前回はDBの検索方法が主でしたが、今日はアプリケーションとしてのDB、 その画面などを勉強しましょう。 通常アプリケーションの基本機能としては、次のような機能が考えられます。 1.データの登録 2.データの更新 3.データの検索 4.データの削除 5.データの印刷 この5つの機能さえ押さえれば、簡単なアプリケーションは出来たも同然です! 実際は、業務知識があってこそのアプリケーションですがそれはみなさんの 実務で応用して下さい。 まずは基本機能を利用する画面を考えましょう。 画面の構成を考えるに当たって、重要な事は以下の点です。 1.シンプル。 2.見やすい。 シンプルであれば、説明書なども不要ですし、お年寄りや子供でも利用できます。 見やすければ、情報が簡単に手に入り、アプリケーションを利用したくなります。 可能であれば、一画面で完結するのが良いです。 ■Part2:ログインテーブルについて■ 登録も出来て、検索も、更新も、印刷も・・・は難しいから、 印刷はCSV出力等に置き換えてっと。 どんな画面が良いのでしょう?(笑) アドレスや住所、名前、年齢などを管理するアプリケーションを作りながら 説明していきましょう。 まず画面ですが、個人情報保護の観点から 誰でも利用できるのではなく、ログインしないと利用できないようにしてみましょう。 ロジックとしては、ログインするIDとパスワードが データベースに登録してあるID、パスワードと合致していればOK。 データベース上には、ログインテーブル(LOGIN)を作成します。 作成するフィールドは、シーケンス番号、ID、パスワードの三つで良いですね。 いつものように、連番フィールドを作成して。→ 【L_ID】 今回は、PostgreSQLが持っている特殊タイプ【TIMESTAMP】を利用してみましょう。 IDは【L_Name】、パスワードは【L_Password】と言う名前のフィールにします。 #ここから---------------------------------------------------------- PDATAとは配列 接続文字列は「test」#ここはデータソース名です。 接続文字列でADO開く。 「CREATE TABLE login (L_ID serial primary key,L_DATE TIMESTAMP,L_Name TEXT,L_Password text);」をSQL実行 #ここで登録用の「LOGIN」テーブルを作成します。 「INSERT INTO login (L_DATE,L_Name,L_Password) values ('now','choco','nadesiko');」をSQL実行 #データを登録します。 「SELECT * from login;」をSQL実行#登録されたデータを読み込みます。 PDATAはDB結果全部取得#上で読込んだデータを変数「PDATA」に読込みます。 DB閉じる。 PDATAを言う。 終わる。 #ここまで---------------------------------------------------------- PostgreSQLは、【now】と言う特殊な定数を使う事によって、 その日時を取得できます。 今回、ログインマスタに登録した日付という 意味で作成してみました。 ■Part3:ログイン画面について■ インターネットを利用していると、よくあるログイン画面を 作成してみましょう。 インターネットと違って、ブラウザで開くタイプでは ありませんが簡単ですのでチャレンジ! まずはIDを入力する所ですが、GUI部品の一つ【エディタ】を 使ってみましょう。 パスワードも同じですが、 周囲の人に見られても大丈夫なようにマスクをかけてみましょう。 #ここから---------------------------------------------------------- 母艦について 母艦のタイトルは「なでしこでRDB」 母艦の背景色はウィンドウ背景色 母艦のW=350 母艦のH=130 母艦のX=90 母艦のY=90 !母艦設計=『母艦のオフに最大化ボタン有効変更』 母艦を中央移動 部品01とはラベル。 そのテキストは「ログイン画面」 そのX=20。そのY=10。そのW=200。そのH=20 その文字サイズは11 その文字色は青色 ID01とはパネル そのテキストは「ID」 そのX=30。そのY=40。そのW=100。そのH=20 ID02とはエディタ そのX=135。そのY=40。そのW=100。そのH=20 PASS01とはパネル そのテキストは「PASSWORD」 そのX=30。そのY=70。そのW=100。そのH=20 PASS02とはエディタ そのX=135。そのY=70。そのW=100。そのH=20 そのパスワードモードはオン ログインボタンとはボタン そのX=250。そのY=40。そのW=80。そのH=50 そのボタンをクリックした時は  ログイン処理 エンドボタンとはボタン そのX=250。そのY=240。そのW=80。そのH=50 そのクリックした時は  終わる。 #ここまで---------------------------------------------------------- はい、画面が出来ましたね。 この画面では、ログインと言う名前のボタンを押すと【ログイン処理】を 行うようになってます。 次は、このログイン処理の方法を考えて見ましょう。 ■Part4:ログイン処理について■ 実際にログインした時に、入力されたIDとパスワードがDBに 登録されている物と同じか調べましょう。 ここでは、SELECT文を使って探して見ます。 #ここから---------------------------------------------------------- ●ログイン処理  LIDとは文字列//入力されたIDを格納する変数  LPAとは文字列//入力されたパスワードを格納する変数  ACTIVATEとは配列//結果を格納する変数  ID02をLIDに代入  PASS02をLPAに代入  接続文字列は「test」#ここはデータソース名です。  接続文字列でADO開く。  エラー監視   「SELECT * from login where l_name = '{LID}' and l_password = '{LPA}';」をSQL実行  エラーならば   「エラー」と言う。   戻る。  ACTIVATE=DB結果全部取得  DB閉じる。  ACTIVATEを言う。  戻る。 #ここから----------------------------------------------------------- エラー監視命令を入れておかないと、SQL構文がおかしい時に 判別ができなくなります。 今回は単純に「エラー」と言う。を使いました。 実務で使う場合は、その前に実行したSQL文をチェックする意味で、 そのままSQL文を表示させたりするのが良いでしょう。 #<例>-------------------------------------------------------------  エラーならば   「SELECT * from login where l_name = '{LID}' and l_password = '{LPA}';」と言う。   戻る。 #ここまで----------------------------------------------------------- では、全部つなげて実行してみましょう! #ここから----------------------------------------------------------- 母艦について 母艦のタイトルは「なでしこでRDB」 母艦の背景色はウィンドウ背景色 母艦のW=350 母艦のH=330 母艦のX=90 母艦のY=90 !母艦設計=『母艦のオフに最大化ボタン有効変更』 母艦を中央移動 部品01とはラベル。 そのテキストは「ログイン画面」 そのX=20。そのY=10。そのW=200。そのH=20 その文字サイズは11 その文字色は青色 ID01とはパネル そのテキストは「ID」 そのX=30。そのY=40。そのW=100。そのH=20 ID02とはエディタ そのX=135。そのY=40。そのW=100。そのH=20 PASS01とはパネル そのテキストは「PASSWORD」 そのX=30。そのY=70。そのW=100。そのH=20 PASS02とはエディタ そのX=135。そのY=70。そのW=100。そのH=20 そのパスワードモードはオン ログインボタンとはボタン そのX=250。そのY=40。そのW=80。そのH=50 そのクリックした時は  ログイン処理 エンドボタンとはボタン そのX=250。そのY=240。そのW=80。そのH=50 そのクリックした時は  終わる。 ●ログイン処理  LIDとは文字列  LPAとは文字列  ID02をLIDに代入  PASS02をLPAに代入  接続文字列は「test」#ここはデータソース名です。  接続文字列でADO開く。  エラー監視   「SELECT * from login where l_name = '{LID}' and l_password = '{LPA}';」をSQL実行  エラーならば   「エラー」と言う。   戻る。  ACTIVATE=DB結果全部取得  DB閉じる。  もし((ACTIVATEの行数)>1)ならば   「ログイン成功」と言う。  違えば   「ログイン失敗」と言う。  戻る。 #ここまで------------------------------------------------------------- どうですか?無事にログイン機能が出来ましたね♪ 次回は、データ登録を中心にやってみましょう。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┏━┓ ┃05 テーマ名:なでしこの最新命令を使ってみよう ┃   第5回 命令「メモリ使用率取得」 執筆:クジラ飛行机 ┗━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ クジラ飛行机です。このコーナーでは、毎回、最近なでしこに実装された 面白い命令を紹介します。新しい命令が皆さんに「使ってみたい!」と 思ってもらえれば幸いです。 今回は「メモリ使用率取得」命令です。 この命令は、Windows でメモリを何パーセント使用しているかを調べる ことができます。 以下のプログラムは、1秒に1回、メモリの使用率を調べて、 タスクバーに表示するというものです。 {{{ 母艦を最小化。 監視用とはタイマー。 その時満ちた時は〜   母艦のタイトル=「mem:{メモリ使用率取得}%」 その間隔は1 監視用を開始。 }}} 常駐アプリなどのオマケ機能などに気軽につけられるので 使ってみてくださいね。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ┏━┓ ┃06  テーマ名:ポ・イ・ン・ト ┃      第6回 ホップ・ステップ・ジャンプ 執筆:EZMAVI.net ┗━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ どうも、EZNAVI.netです。 6月も中旬、日差しが出れば夏のような暑さを、雨が降れば湿気など 梅雨の季節、ハッキリしない季節です。 ホップ・ステップ・ジャンプと今の時期が過ぎ去って、コンテストや展示会など イベントのある夏にならないかっと皆さん思うのではないでしょうか。 ● OSC2008 オープンソースの祭典 OSC2008 Kansaiへ去年同様出展をします。 日時:2008年7月18日(金)・19日(土) 10:00〜17:00 会場:京都コンピュータ学院 京都駅前校(JR京都駅八条口より徒歩7分)  http://www.ospn.jp/osc2008-kansai/ ● U-20 コンテスト 学生向けコンテストが行われています。過去になでしこのユーザーの方も 賞をとっており、この夏をプログラムで思い出を作りましょう。 応募締め切り:平成20年7月31日(木)必着  http://contest.himanavi.net/u-20/ ● なでしこ公式バイブル なでしこ公式ガイドブックは完売となりユーザーから要望のあった 公式本がいよいよ公式バイブルとなり発売されます。 公式ガイドブックを手に入れられなかった方もこちらの本ではぜひ アマゾンまたは各書店で販売されていますのでぜひご購入ください。  http://www.amazon.co.jp/exec/obidos/ASIN/4883376036/soccoltd-22/ref=nosim パソコンのデスクトップに仮置きのつもりでデータ置いておくといつの間にか 削除されずにたまってしまうものです。そのため先日パソコンのほぼHD(C:\)が いっぱいになってしまいこまめに違う場所に保存しなければと感じました。 「C:\」のディスク空きサイズ/1073741824を表示 *バイトからギガバイトへ単位を変更するため、数値「1073741824」で 単位を変更させています。 一ヶ月はいつの間にか過ぎ去ってしまうものです。 各イベントが開催されるので、ぜひイベントに参加して共に楽しみましょう。 ■■===============【プログラムメールマガジン 色彩】===============■■■   ・ メールマガジン登録・解除はこちら (http://mm.himanavi.net/)