初めて作る C# プログラム - MyClock

プログラム電卓のためのC#プログラミング
e-Gadget

<トップページへ>


2017/01/31
大きく改訂 2017/02/22
更新 2017/04/06

更新: 最新版 MyClock Ver 1.18.5.1 を公開(ソース付き)


初めて作る C# プログラム - MyClock


無償で入手できる開発環境 Visual Studio Community 2015 の C# を初めて触ってみながら、具体的なプログラムを作ってみます。

プログラミングの習得に効果的なのは、自分が欲しいプログラムを作ること、そして人に説明すること。私の持論です。最初は簡単に作れそうで、機能追加で欲しいプログラムになりそうなものが良いですね。


はじめに

シンプルな時計から始めます。

というのも、10年以上前に、アクティブになっているウィンドウのタイトルバーに常に張り付く小さな時計 scClock を作り、10年以上愛用していました。番外編 - 小さな時計 - scClock をご参照。

ところが最近は、目が疲れてくると小さな時計のフォントの視認に困ることがあります。フォントを大きくするとタイトルバーには収まりそうにないので、半透明で大きなフォントの時計にすれば良いかも知れない...ということで、老眼が始まった世代のための邪魔にならないデジタル時計...というコンセプトでアプリを作ることにしました。



[2017/02/14 追記]
10年以上前に Active Basic (Windows XP) で作った 小さな時計 - scClock を作って常用してきました。今回作ったMyClock のフォントや外観を小さくすることで scClock として作り直し、アクティブなキャプションバーに貼り付く機能を追加しました。これを Win 7 以降 (対象のフレームワークは .NT Framework 3.5) に対応する scClock Ver 3.01 としました。 

小さな時計 - キャプションバーに張り付く時計 (ソース付き)
scClock Ver 3.01


[2017/03/05 追記]
MyClock の外観がカスタマイズできるようになり、アクティブなキャプションバーに貼り付く機能も盛り込んだので、scClock として使えるようになりました。scClock は寿命を終えたようです。10年以上ご苦労様!


PC保護の警告について

自作プログラムや信頼できる入手先からダウンロードしたプログラムを実行しようとすると、Windows 8 以降ではPC保護の警告がでます。

最近は悪質なマルウェアやインターネットサイトがあるので細心の注意は必要ですが、汚染されていない自身のあるクリーンなPCで自分で作ったプログラムで、ほぼ確実にこの警告がでます。さらにセキュリティーソフトが追いうちをかけて、警告を出します。

対策については、こちらをご覧ください。

自作プログラムがPC保護警告に引っかかる



最新の MyClock

初めてC#で作るプログラムの最新の MyClock は C#学習を反映しています。ここに至る道筋を簡単に記事にします。さらに自分なりのプログラミングTipsも紹介する予定です。

==========

邪魔にならないデジタル時計 (アラーム機能付き)
MyClock Ver 1.18.5.1  [更新 2017/04/06]
最新版 (ソース付き) Ver 1.18.5.1 のダウンロード
  • アラーム機能があります。
  • 時計の外観をカスタマイズできます。
  • ポータブルアプリです(フォルダにコピーするだけで使え、不要になればフォルダごと削除するだけです)。
  • カタログ機能を追加。時計の外観を登録しておいて一発切替えできます。
動作に必要な最小限のファイル:
  • MyClock.exe
  • Interop.IWshRuntimeLibrary.dll
  • scClock.exe
一応 ReadMe.txt も入っています。

<MyClock>フォルダにソースファイルが入っています。MyClock.sln を実行するとVisual Studio で読み込んで起動します。Visual Studio Community 2015 で作ったものです。

MyClock紹介ページ
MyClock Ver 1.18.4 以降で、[MyClockについて]画面のキャプションバーにある[?]ボタンクリックで、このMyClock紹介ページがブラウザで開くようになっています。


シンプルなものから最新までの道筋

多分最も簡単に作れる時計アプリ

Ver1.00外観 

手始めに、前面表示する半透明でフォントの大きなのデジタル時計を作りました。
タイマーコントロール、フォームのプロパティ設定だけでできます。とは言っても初めてC#で作ったので、主にIDEの使い方やC#が自動生成するコードについて調べてみました。


クライアント領域のマウス操作、プロセスの排他処理

キャプションバーと枠を取り去ったデジタル時計に改造しました。そのためには、クライアント領域のマウス操作が不可欠になります。そこで、C#でマウスのイベントハンドラを使ってみました。

こんな感じになりました。
枠無し黄色半透明フォーム
 

アプリ用のアイコンリソースの使い方も試しました。さらに二重起動禁止にするため、mutex を使ったプロセスの排他処理を C#で試してみました。VC++の感覚で扱えることが分かりました。

[C#プログラミングTIPS] 2重起動禁止のいくつかの方法


キー入力の取得とモーダルダイアログ

[Esc]キーを取得してモーダルダイアログを表示させる処理を作ってみました。

[C#プログラミングTIPS] モーダルダイアログと[OK]での戻り値

アプリの機能としては、こんな感じのフォームでアラームの設定を行います。
アラーム設定画面 

私の Windows 10 環境だと標準のフォントサイズが 9pt になっていますが、そもそも大きな文字の時計を作るコンセプトなので、12pt を基本のフォントサイズにしました。

過去の VC++ でも使ったことの無い DateTimeコントロールを初めて使ってみました。他には、ボタン操作やチェックボックスなどの練習もできました。クリックすると [▶前面] ⇒ [▶最大化] ⇒ [▶前面中央] と3フェーズを循環するボタンを実装。[OK]ボタンは[Enter]キーと連動、[Cancel]ボタンは[Esc]キーと連動させるのは、フォームのプロパテティの設定で実装できることも試しました。


Win32 APIの利用

アラームが発動した時、目立つように点滅させます。そこで、キャプションバーとボーダーフレームを点滅させるWin32 API の利用を試しました(.NET Framework にはウィンドウ点滅の機能が準備されていないようです)。

[C#プログラミングTIPS] フォームを点滅させる Win32 APIの利用

こんな感じで、点滅します。
アラーム発動時に、ウィンドウの最大化やスクリーン中央への移動などのオプションを作りました。

アラーム発動 


ピクチャーボックとテキストボックス、アセンブリ情報の活用

ピクチャーボックスにアイコンを表示し、テキストボックスにクイックマニュアルを表示するのを試しました。

こんな感じのアプリ情報のダイアログを作り、[F1]キーを押して呼び出すようにしました。

Aboutダイアログ_ボタンなし 

ここでも 標準の9pt よりも大きなフォントで表示しています。

さらに、アプリに埋め込まれるバージョンとかアプリ名などのアセンブリ情報の取得も試みました。
アセンブリ情報を利用は初めてで、ここで表示している「アプリの説明」、「アプリ名 (MyClock)」、「バージョン」、「Copyright表示」は全てアセンブリ情報から取得して表示。バージョンアップ時にアセンブリ情報を変更するだけで良く、フォームの変更は不要です。


外部アプリを起動してみる

外部アプリとして、以前作った scClock (小さな時計) を起動する処理を作ってみました。Win32 APIを使わずに .NET Framework と C# だけで起動しているプロセスの列挙、プロセスの終了、例外処理ができました。

[C#プログラミングTIPS] 外部プログラムを起動する


モードレスダイアログとプロパティグリッド

時計の外観をカスタマイズする機能を追加しました。外観の設定をリアルタイムに反映させるために、モードレスダイアログとプロパティグリッドの組み合わせが良さそうです。

[C#プログラミングTIPS] モードレスダイアログを使う

プロパティグリッドは初めて使ってみましたが、非常に便利なものですね!
プロパティグリッドは、基本的な使い方が分かれば、細かなユーザーインターフェースをコーディングする必要がありません。

[C#プログラミングTIPS] PropertyGrid を使う

今回作った時計は、その外観に "通常の外観"と"アラーム設定時の外観"の2セットあります。そこで、プロパティグリッドに表示するプロパティもそれぞれに併せて2セット用意します。2セットの外観と2つのプロパティセットを動的に連動させました。

[C#プログラミングTIPS] 別フォームのプロパティにアクセス (set / get) する

さらに、プロパティグリッドの上にある外観変更ボタン (下の図では [通常の外観]ボタン) で2セットの外観を強制的に変更し、プロパティグリッドの表示をこれに連動させました。

このように、異なるクラスのフォーム間で互いのフォームの表示を双方向で制御するC#のコーディングが試せました。

通常の外観のカスタマイズは、こんな感じ...
通常 

アラーム設定時の外観のカスタマイズは、こんな感じ...
アラーム設定時 

極端に小さくして scClock のような外観にもできます。
 小さな外観 


読者の方からのコメントでヒントを頂き、MyClock にキャプションバーに常に貼り付く機能を選べるようにしました。
外観の設定の画面に追加したボタンを押すことで、貼り付く / 貼り付かないを選択できます。

通常の外観をこんな感じにして、キャプションバーに貼り付いたところ...
貼り付き-通常


アラーム設定時の外観は、こんな感じにしてみます。
貼り付き-アラーム設定時

作ってみたら、良い機能だと気がつきました( ^^;


アプリケーション構成ファイル (*.exe.config) の思い込み

当初からレジストリや特殊フォルダを使わずに、インストールフォルダの中だけで簡潔するポータブルアプリを作っているつもりでした。アプリーション構成ファイルを使うと楽なので ビルドして得られる MyClock.exe.config をインストールフォルダに置いておけばポータブルアプリになると思い込んでいましたが、大きな勘違いでした。MyClock.exe.config は初期設定に使われるだけで、アプリケションの設定内容は AppData 配下のフォルダに作られていました。それもかなりの量のファイルやフォルダが作られていました。

さらに、アプリケーション構成ファイルは1つ前のバージョンの設定はそのまま引き継げますが、それ以前のバージョンで保存された設定情報を読み込めないという問題があることも知りました。

そこで、昔ながらの INIファイルにアプリの設定情報を保存して使うように変更しました。XMLファイルを設定ファイルとして使う方法もありますが、コーディングが楽な INIファイルを採用しました。Win32 API を呼び出してコーディングしますが、他の Win32 APIと異なり、C#用のラッパーの作成に少し悩みました。int 変数の読み書きは使わず、string (文字列) 変数のみの読み書きとしました。

[C#プログラミングTIPS] INIファイルを使う


ArrayList とトラックバー(スライダー)

時計の外観のプロパティを無制限に複数登録し、そこから任意のプロパティを呼び出す機能(カタログ機能)を追加するため、ArrayList と トラックバーを使ってみました。

ArrayListの良いところは、2次元配列と異なり、動的な要素を追加と削除が簡単にできる点にあります。無制限にArrayListに追加した外観プロパティを視覚的に無制限に表現するためにトラックバーはメリットがあると思いました。登録数が増えればトラックバーの刻みを細かくするだけで良いからです。

[C#プログラミングTIPS] ArrayListに配列を格納して使う

列挙したものを選択するコントロールとしては、
  • リストボックス
  • コンボボックス
  • イメージリスト
  • ツリービュー
  • ラジオボタン
  • ボタンを並べる
などが考えられますが、文字列を使わない(ユーザーがいちいち外観に名前を付ける手間が無い)、無制限に追加削除が簡単にできて決まった領域にコントロールを格納できる、といった要件を考え、さらにコーディングが楽そうだという理由でトラックバー (スライダー)を使ってみることにしました。

そして、プロパティの登録作業用のクラスを作って、インデックスプロパティ、操作メンバなどを行うような C#らしいコードに挑戦しました。C#使いの方からみればダメダメなコードだと思いますが、約1ヶ月前にC#を始めたころから見れば進歩はしていると思います。ダメさ加減も含めてソースを公開しているのは、気を引き締めるためもあります。

さて出来上がったカタログ画面ですが、こんな感じでカスタマイズした外観を[追加]します。
カタログ機能

操作するコントロールが少ないですが、それだけに柔軟です。登録数が多くなってトラックバーの刻みが細かくなりすぎる時を想定して、フォームを横に広げられるようにしています。

時計の実際の外観、[時計のカスタマイズ]画面の表示、そして[時計のカタログ]画面の3つの異なるフォームの表示内容は、常に同期して変化するようにしました。

外観のプロパティを6個登録して、そこから INDEX 1/6 を通常の外観に適用した例...
カタログ機能2

時計のカスタマイズ(外観の設定)画面はプロパティグリッドを使って、リアルタイムに外観をカスタマイズできるよう作っていて、さらにカタログ機能も同期しているため、トラックバーを動かすと、実際に時刻を刻んでいる時計の外観が動的に変更されます。

こんな小さな外観を登録しておき、アラーム設定時の外観に適用したところ...
カタログ機能3

こんな小さな外観だと、色々なフォームが上に被さって行方不明になりそうなので、これらのフォームは時計に重ならないように再配置するようにしています。

異なる3つのフォームの表示内容を同期させるため、Public static な変数を全てのフォームからアクセスするようにしています。


特殊フォルダへのアクセスと実行中に自分自身のショートカットを作成する

これまで自分で使う際には、ショートカットファイル MyClock.lnk を作って、それをスタートアップフォルダへコピーしてログイン時に自動起動するようにしていました。そこで、実行中の自分自身のショートカット作成とスタートアップフォルダへのコピーを行う「ログイン時に起動する」機能を追加しました。タスクマネージャーのスタートアップで確認できます。

スタートアップ設定 

[ログイン時に MyClock を起動する] にチェックを入れるとその場でスタートアップフォルダにショートカットを作成し、チェックを外すとその場でショートカットを削除します。

[C#プログラミングTIPS] スタートアップフォルダに実行中のアプリのショートカットを作る

初めてC#を使いだして1ヶ月程度の間に機能を追加してきたアプリですが、かなり満足できる仕上がりになってきたと思います。肝心のC#の学習はまだ始まったばかりで、まだまだ分からないことが多くヘボなソースだと思います。

以下では、最初から順にソースを見直して学習したことの整理と定着を図りたいと考えています。



C#学習の履歴を以下にまとめます。

フォームを作り時刻を表示させる (Ver 0.10)

仕 様
  • フォントが大きい
  • 半透明で常に前面表示
試したこと
  • Visual Studio IDE の使い方と基本的な機能
 MyClock Ver 0.10 のページ



クライアント領域のマウス操作でアプリの終了と移動を行う (Ver 1.00)

更新履歴

 ・タイトルバーの無い小さな(邪魔にならない)外観に変更
 ・クライアント領域を左ダブルクリックで終了可能にする
 ・クライアント領域をマウスで掴んで移動可能にする
 ・マウス右クリックで最小化できるようにする

試したこと
  • イベントハンドラの作成と フォームデザイナーの挙動

 MyClock Ver 1.00 のページ



モーダルダイアログで設定した各種変数を親ウィンドウに反映させる

更新履歴

 ・アラーム機能を追加
  - [Esc]キーでアラーム設定
  - アラーム発動時マウスを左クリックで元に戻る

 MyClock Ver 1.10 のページ



MyClock Ver 1.11 にアップデート

更新履歴

 ・アラーム設置柄画面を時計の周りに重ならずに表示
 ・アラーム設定画面で、現在時刻をがが取得可能にした
 ・最小化からのアラーム発動では半透明最大化させる
 ・最前面に表示しないことがあったのを修正
 ・Alarm.exe 単独起動のエラーの場合メッセージを表示して終了。

 MyClock Ver 1.11 のページ


MyClock Ver 1.12 にアップデート

更新履歴

 ・以下を保存して再起動時に復元するようにした
  - アラーム設定時刻
  - アラーム解除設定状態
  - 時計の表示位置


 MyClock Ver 1.12 のページ


MyClock Ver 1.13 にアップデート

更新履歴

 ・終了時に補村して再起動時に復元する項目を追加
  - 終了時の時計のサイズ(ノーマル/最小化)
 
 MyClock Ver 1.13 のページ


MyClock Ver 1.14 にアップデート

更新履歴
 ・時計の表示状態ごとにアラーム発動時の外観を選択できます。
  - 時計の表示状態:前面表示 / 最小化
  - アラーム発動時の外観:前面表示 / 最大化
 ・アラーム発動時の外観設定を終了時に保存し再起動時に復元する。
 ・MyClock.exe から呼び出されず単独起動の場合の例外処理を追加。

 MyClock Ver 1.14 のページ


MyClock Ver 1.15 にアップデート

更新履歴

  2017/02/04 ・アラーム設定に「▶前面中央」を追加した。
        ・起動時に「MyClock の使い方」の表示ができるようにした。
         - 起動時の表示をするかどうかを設定できる





応援クリックをお願いします。励みになるので...


人気ブログランキングへ


FC2ブログランキングへ



    

keywords: プログラム関数電卓、Windowsプログラミング

リンク集 | ブログ内マップ
関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

コメントの投稿

非公開コメント

re:MyClock Ver 1.17.3a

管理人様、こんにちは!
ちょこっとバタバタ続きですみません(^^;

MyClock Ver 1.16.9 ~1.17.3aしっかりいただいております。(^^)

外観設定が出来るようになったのがなかなかよいですね。
ここまで来ると私的には必要にして十分というところで常用体制に入ってるところですが、
相変わらず仕様外挙動とバグには全然気が付かなかったというか、普通に使っているだけではとくに問題になるようなことはなかったのが幸いでした。(^^)

MyClockとscClockは現在併用中ですが、MyClockとscClockでどちらか1つだけしか使えないとなればscClockになるかもしれません。

通常はバーに張り付くscClock仕様が個人的にはお気に入りで、アラーム時にMyClockというのが良さげな感じです。(^^)

機能追加 - MyClock Ver 1.17.3b をリリース

sentaro様


> ちょこっとバタバタ続きですみません(^^;

C.Basic の大幅機能追加、お疲れ様です。これについては UCF への対応をします。


> MyClock Ver 1.16.9 ~1.17.3aしっかりいただいております。(^^)

ありがとうございます。

> 外観設定が出来るようになったのがなかなかよいですね。
> ここまで来ると私的には必要にして十分というところで常用体制に入ってるところですが、
> 相変わらず仕様外挙動とバグには全然気が付かなかったというか、普通に使っているだけではとくに問題になるようなことはなかったのが幸いでした。(^^)

良かったです。自分でも常用していますが、自分の使い方は結構固定してしまうので、ついつい見逃してしまいます。



> MyClockとscClockは現在併用中ですが、MyClockとscClockでどちらか1つだけしか使えないとなればscClockになるかもしれません。
>
> 通常はバーに張り付くscClock仕様が個人的にはお気に入りで、アラーム時にMyClockというのが良さげな感じです。(^^)


良いお題を頂きましたので、MyClock にキャプションバーに常に貼り付く機能をサクッと追加しました。


邪魔にならないデジタル時計 (アラーム機能付き)
Ver 1.17.3b

http://egadget2.web.fc2.com/archives/Src_files/C_Sharp/MyClock_Ver1.17.3b.html

外観の設定にボタンを追加し、キャプションバーに常に貼り付けるかとうかを選べるようにしました。
現在の設定状況はボタンテキストに表示しています。

なお、貼り付く位置は時計の右上を基準にしています。 こうすると大きめの時計でもウィンドウに収まりがよくなるだろうと思って、scClock では右下だったのを変えていています。

今回も ダウンロードした MyClock.exe だけをコピーすれば外観設定はそのまま引き継がれます。
Ver表記は 1.17.3 のままです。


実際に使ってみると、これがなかなか便利です。ありがとうございます。scClockは不要になりそうです(^^;

Win10 だとキャプションバー周りは結構スペースがあるので、半透明にしておけば、大きめの外観でも見やすく、邪魔にならないです。

貼り付く設定になっている時は、scClockの起動を抑制してます。


Re:機能追加 - MyClock Ver 1.17.3b をリリース

管理人様、こんにちは!

Ver 1.17.3b、 早速にいただいております。

>良いお題を頂きましたので、MyClock にキャプションバーに常に貼り付く機能をサクッと追加しました。

これはとっても◎な機能追加です!
scClockの大きさやフォントを変えられるといいなという感じで思っていたのですが、MyClockを貼り付けるという発想は、さすが管理人様です!
最初にこういう感じになればいいかなと思っていたことが遂に実現という感じですね。(^^)


>実際に使ってみると、これがなかなか便利です。ありがとうございます。scClockは不要になりそうです(^^;

はい!
MyClockが張り付くとなれば、scClockの存在価値はかなり微妙になってしまいますね。(^^;



>C.Basic の大幅機能追加、お疲れ様です。これについては UCF への対応をします。

従来のプログラムチェックにて、エラーが出るのを発見しましたので修正後、差し替えました。(^^;

久々の基本仕様に関わる大幅バージョンアップなのでバグがかなり残っていそうですが、このあたりはまた地道に潰していくことになりそうです。

バグが無ければ恐らく最終版 MyClock Ver 1.17.4 をリリース

sentaro様

> Ver 1.17.3b、 早速にいただいております。
> >良いお題を頂きましたので、MyClock にキャプションバーに常に貼り付く機能をサクッと追加しました。
> これはとっても◎な機能追加です!

喜んでもらえて嬉しいです。

> scClockの大きさやフォントを変えられるといいなという感じで思っていたのですが、MyClockを貼り付けるという発想は、さすが管理人様です!

柔軟性のある方を貼り付けるのが良いと思っただけです...アクティブウィンドウへの貼り付けは大した行数ありませんので、楽チンでした。


> 最初にこういう感じになればいいかなと思っていたことが遂に実現という感じですね。(^^)

まさに、おっしゃる通りですね。ヒントを頂いて実際に作ってみるまではと、こんなに便利だとは思いませんでした。ソフトウェアは技量も必要ですが、発想も大切ですよね!

そもそもC#学習用の題材として、「老眼が始まった年代用の邪魔にならないデジタル時計」という基本コンセプトを、大きなフォントで、半透明で、アクティブウィンドウに貼り付くことで、うまい具合に実現できたと思います。

何も考えずに MyClock だったのdすが、カスタマイズできるから名前にフィットです。

sentaro様のヒントが見事に当たりました。本当にありがとうございます。おかげさまで初めてのC#も、学習も大いに進みました。


ガノー様にも相談できそうだし、これからはC#メインにしても良いかも知れないと思うようになりました。


======

MyClock Ver 1.17.4 を公開しました。一応、Ver 1.17.4.x で MyClock は完成版になると思います。


最後の懸案事項として、アップデートするとそれまでのカスタマイズの設定が引き継がれないという問題を、根本邸に解決したいと思っていました。バイナリファイル、XMLファイル、INIファイル、アプリ構成ファイルのどれが良いのか、試行錯誤した結果、やはり当初考えていた INIファイルに設定情報を保存することにしました。


邪魔にならないデジタル時計 (アラーム機能付き)
MyClock Ver 1.17.4.0
http://egadget2.web.fc2.com/archives/Src_files/C_Sharp/MyClock_Ver1.17.4.html


MyClock.ini が設定ファイルです。無ければ自動作成するようにしているので、配布ファイルには含まれません。


INIファイルをエディタで直接編集するのは、まぁお勧めしません。簡単に編集できてしまうところが INIファイルの欠点ではありますが、いざという時には役立つ側面もあります。MyClock.ini をサクッと削除すれば簡単に初期化できますので、使いようではあります。

INIファイルへの移行には、実は2つの側面があります。1つはアップデートでの情報引き継ぎですが、以下で告白するように完全なポータブルアプリにするためもあります。



さて、この Ver 1.17.4 は今後のアップデートでは設定情報を確実に引き継げますが、これまでのカスタマイズ設定をいっさい引き継げません。そこで、情報移行用に、Ver 1.17.3d も公開しました。これはこれまでのアプリ構成ファイルとINIファイルの両方を扱うようになっています。

http://egadget2.web.fc2.com/archives/Src_files/C_Sharp/MyClock_Ver1.17.3d.html

これまでのように、MyClock.exe のみを上書きコピーしてください。そして起動して終了するだけで設定情報が INIファイルに移ります。この移行手順を踏んでもらえれば、次に Ver 1.17.4 をコピーして設定情報が引き継がれます。移行作業が終われば、 MyClock.exe.config は不要なので削除しても構いません。

まぁ、サクッと Ver 1.17.4 に移行してもらってもう一度設定してもらうつもりだったのですが、一応移行手順は用意しました。



ところで、これまでMyClok をコピーしたフォルダ内しか触らないと思っていたのですが、完全な思い違いをしていました。C#初心者ならではのことではあります。

ReadMe.txtにも書きましたが、

C:\Users\[ユーザー名]\AppData\Local\Krtyski___e-Gadget

このフォルダが勝手に作成されていて、更新した設定情報は、実はここに保存されていました。バージョンアップするたびに、それぞれ専用のフォルダを作るので、山のようなフォルダとファイルがあります。ポータブルアプリを作っていたつもりが、とんでもなかったということです。お恥ずかしい。

C#で簡単に使えるアプリ構成ファイル (*.exe.config) は初期設定だけを保存するファイルだったことが、ようやく分かりました。使うのがとても楽だからと使ったのが失敗でした。良い勉強になりました。

私のパソコンでは、このフォルダをバッサリと削除して、問題無く使えています。USBにフォルダごとコピーして、そこから問題なく使えることも確認しました。晴れてポータブルアプリとなりました。



あとは、バグが見つかれば修正し、チョットだけ機能追加するかも知れません。プログラム電卓のためのWindowsアプリ作成への次のステップへ進もうと思います。


Re:バグが無ければ恐らく最終版 MyClock Ver 1.17.4 をリリース

管理人様、こんにちは!

最終版 MyClock MyClock Ver 1.17.4.0 早速にいただいております!

で、サクッと起動したら…サクッと起動しません(^^;
Win7(32)環境でもWin10(64)環境でも同じくエラーになって起動しませんです。(^^;
Ver 1.17.3dでも同じく動作しない状況です。

Ver 1.17.3bは問題ないので、はて?という状況になっております。(^^;

MyClock Ver 1.17.5 (設定移行用 Ver 1.17.3e) 緊急公開

sentaro様

> で、サクッと起動したら…サクッと起動しません(^^;
> Win7(32)環境でもWin10(64)環境でも同じくエラーになって起動しませんです。(^^;
> Ver 1.17.3dでも同じく動作しない状況です。

大変失礼致しました。

邪魔にならないデジタル時計 (アラーム機能付き)
MyClock Ver 1.17.5
http://egadget2.web.fc2.com/archives/Src_files/C_Sharp/MyClock_Ver1.17.5.html


設定ファイル移行用
MyClock Ver 1.17.3e
http://egadget2.web.fc2.com/archives/Src_files/C_Sharp/MyClock_Ver1.17.3e.html


よろしくお願い致します。



>
> Ver 1.17.3bは問題ないので、はて?という状況になっております。(^^;

Re:MyClock Ver 1.17.5 (設定移行用 Ver 1.17.3e) 緊急公開

管理人様、こんにちは!

MyClock Ver 1.17.5 無事起動しました!(^^)

設定は全体の大きさとフォント程度なのでVer 1.17.5で新規に再設定しました。

INIファイルに設定情報が記録されるのは分かりやすくてよいですね。

MyClockを張り付かせてしまうと文字フォントや大きさの違いでscClockの出番がほぼ無くなってしまいますが、
そのMyClockメインで考えると、通常外観とアラーム時外観の設定パターンをそれぞれいくつか(5種類くらい?)保存できて、それが一発で変更できるようになると便利かもしれないとちょっと思いました。(^^)

外観の登録機能

sentaro様


> MyClock Ver 1.17.5 無事起動しました!(^^)

良かったです(^^ ;



> 設定は全体の大きさとフォント程度なのでVer 1.17.5で新規に再設定しました。


実のところ、それまで殆ど無頓着だったフォントについて、少し勉強する良い機会になりました。
以前は、フォントの名前や種類について殆ど知らなかったもので、どのフォントに設定したか覚えるのが難しかったところがあります。なので設定移行があれば、以前の自分なら助かるだろうなぁ、と思ったんですね。



> INIファイルに設定情報が記録されるのは分かりやすくてよいですね。

あはは、見やすいとついつい覗いてしまいますよね...



> MyClockを張り付かせてしまうと文字フォントや大きさの違いでscClockの出番がほぼ無くなってしまいますが、

私は、もう scClock をスタートアップから外してしまっています。必要になれば MyClock から[F12]キー一発で呼び出せますから...

ここまで作って思うことですが、C#は安全なコーディングがしやすい言語ということです。変数や関数へのアクセスを制限するのが基本的なコンセプトなので、最初は面倒に感じましたが、これが重要なんだと再認識しています。




> そのMyClockメインで考えると、通常外観とアラーム時外観の設定パターンをそれぞれいくつか(5種類くらい?)保存できて、それが一発で変更できるようになると便利かもしれないとちょっと思いました。(^^)

おお、これまた面白そうなネタですね。ありがとうございます。チョット検討してみようと思います。


Re: 外観の登録機能

sentaro様

MyClock Ver 1.17.5 は大きなバグもなく、手元では大過なく使えていますが、1つバグを見つけました。

※バグ:
時計がアラーム設定時の外観になっていて、さらに外観設定画面が開いている時に、時計のダブルクリックでいきなり終了すると、アラーム時刻が正しく保存されず、23:59:59になっている問題がありました。
次回アップデート時には、修正します。


> > そのMyClockメインで考えると、通常外観とアラーム時外観の設定パターンをそれぞれいくつか(5種類くらい?)保存できて、それが一発で変更できるようになると便利かもしれないとちょっと思いました。(^^)
>
> おお、これまた面白そうなネタですね。ありがとうございます。チョット検討してみようと思います。



外観カタログ機能といった感じを構想中です。何をするのも表示されている時計とリアルタイムで行うという基本コンセプトは維持したいと思っています。

なので、時計、外観設定画面に加えてカタログ画面が3つ開いていて、カタログに追加、削除、選択が外観設定画面表示のプロパティと時計に実際の外観にリアルタイムに反映する感じです。

1つを変えると、連動して変わる部分がとても多く複雑なので、先ずは設計段階で1つのクラスに全てを放り込んで、データ管理やデータ操作は、全てクラス専用のメンバ関数のみで弄れるような構造を、紙と鉛筆で設計中です。こうでもしないと、バグだらけになって収拾が付かないことになるのは自信があります(^^;

C#のクラスの威力を最近実感してきているので、専用クラスに全ての基本操作を任せて、ユーザーインターフェースの実装を簡略化する計画です。C#の学習を兼ねて、ちょっと背伸びした感じの計画ですが、ボチボチ考えています。


で、ユーザーインターフェースなのですが、

 ・サムネイルで外観をリスト表示する
 ・外観に名前を付けてリスト表示する

などと色々考えたのですが、

結局、画面表示は、

 ・時計の外観
 ・外観のプロパティ表示
 ・今回追加するカタログ操作画面

の3つが常に同期する方向でやってみようと思います。

そうすると、直感的に使えるかも知れないと...

如何でしょうか?


Re:Re: 外観の登録機能

管理人様、こんにちは!

>※バグ:
>時計がアラーム設定時の外観になっていて、さらに外観設定画面が開いている時に、時計のダブルクリックでいきなり終了すると、アラーム時刻が正しく保存されず、23:59:59になっている問題がありました。

うわ、これはなかなか滅多に出せない系かものバグですね。(^^;
いろんな条件が重なってなので、うちではずっとバグ出ずのままでした。(^^;


>で、ユーザーインターフェースなのですが、
> ・サムネイルで外観をリスト表示する
> ・外観に名前を付けてリスト表示する
>などと色々考えたのですが、

>結局、画面表示は、
> ・時計の外観
> ・外観のプロパティ表示
> ・今回追加するカタログ操作画面
>の3つが常に同期する方向でやってみようと思います。

私的には設定画面でファンクションキーのボタンが並んでいて、そこを押せばその設定での外観変更&設定になるとか考えていたので、管理人様仕様はかなり本格仕様になりそうですね。(^^)

現状仕様で99%満足状態なので、このあたりの拡張仕様は、使いやすければどんなのでもOkです。(^^)

Re: Re:Re: 外観の登録機能

sentaro様


> >結局、画面表示は、
> > ・時計の外観
> > ・外観のプロパティ表示
> > ・今回追加するカタログ操作画面
> >の3つが常に同期する方向でやってみようと思います。
>
> 私的には設定画面でファンクションキーのボタンが並んでいて、そこを押せばその設定での外観変更&設定になるとか考えていたので、管理人様仕様はかなり本格仕様になりそうですね。(^^)
>
> 現状仕様で99%満足状態なので、このあたりの拡張仕様は、使いやすければどんなのでもOkです。(^^)

良いヒントを頂きました。ありがとうございます。

ファンクションキーのボタンの数には限りがありますが、トラックバー(スライドバー)をボタンの代わりに使えば数はほぼ無制限にできそうです。

カタログへの登録数が増えればトラックバーの刻みを増やせば良いだけ...
で、滅多に無いでしょうが、何十個も登録するとバーの刻みが細かくなりすぎるので、ウィンドウ自体を横に伸ばせてバーも一緒に長くなるようにすれば、多くの登録数でも使い勝手が確保できそうです。

紙と鉛筆で、ほぼ仕様が固まり、クラス設計もほぼ終わったので、土日に作ってみようと思います。


実際に作ってみないと分からない部分が多いのですが、かなり柔軟な使い勝手になりそうです。柔軟過ぎて却って使い方が分かりづらくなる恐れがありそうなので、局面に応じて使い方の一口メモを表示させる計画です。


sentaro様のおかげで、仕様が固まりました。いつもありがとうございます。


ところで、C.Basic でリスト対応されているので、チョット電卓で触ってみたのですが、これまでPCでも電卓でもリストを使ったことがありませんでした。

そこでC#では、今回 Array List というのを初めて使っている予定です。時計の外観を決めるプロパティを1つの配列に収めて、その配列を複数リスト化できるようなので便利そうです。

Array List はネットで調べた限り、格納する配列の数を動的に増減できます。2次元配列では動的な増減は厄介なので、Array List は便利そうです。

トラックバーと Array List の組み合わせて、登録数無制限の仕様なんです。チョット楽しみです。


MyClock Ver 1.18.0 (カタログ機能追加) ができました

sentaro様

カタログ機能を追加してみました。最初は空のカタログです。
使ってみた感想をお聞かせ頂けませんか?

なお、ログイン時に起動するかどうかをMyClock上で設定できるようにしてみました (MyClockについての画面で設定)。



邪魔にならないデジタル時計 (アラーム機能付き)
MyClock Ver 1.18.1

http://egadget2.web.fc2.com/archives/Src_files/C_Sharp/MyClock_Ver1.18.1.html
(ソース付き)


ReadMe.txt にバグ対策、改善、追加機能の概略を記載しています。

Re: MyClock Ver 1.18.1 (カタログ機能追加) 早速のデバッグ版です

sentaro様

先ほどアップした Ver 1.18.0 ですが、カタログ画面起動時のカタログインデックスの初期化処理が効いていなかったバグを修正したものを慌ててアップします。

まだお試しになっていなければ良いのですが...

動作確認の際の組み合わせが結構多くて、うまくやったつもりでしたが、抜けがあったので見過ごしました。



邪魔にならないデジタル時計 (アラーム機能付き)
MyClock Ver 1.18.1

http://egadget2.web.fc2.com/archives/Src_files/C_Sharp/MyClock_Ver1.18.1.html
(ソース付き)


Re: Re: MyClock Ver 1.18.1 (カタログ機能追加) 早速のデバッグ版です

sentaro様

ReadMe.txt に記載している「カタログ機能の簡単な使い方」について書き直して差し替えたました。

ダウンロードファイル名は同じです。

タッチの差で、修正前のものをダウンロードなさったかも知れませんので、再度ダウンロードして頂ければ幸いです。

邪魔にならないデジタル時計 (アラーム機能付き)
MyClock Ver 1.18.1

http://egadget2.web.fc2.com/archives/Src_files/C_Sharp/MyClock_Ver1.18.1.html
(ソース付き)


先ずは説明無しで使って頂いていると思いますが、ご感想をお聞かせください。

私自身にとっては柔軟で使いやすいと感じる仕様なのですが、内部ロジックを知っているというフィルタを通していますので、フィルタの無い場合は、どのように感じられるのかとても興味があります。


緊急アップデート MyClock Ver 1.18.2 (カタログ機能追加)

sentaro様
皆様

条件が整った時だけですが、チョットまずいバグがあったので緊急アップデート致します。



邪魔にならないデジタル時計 (アラーム機能付き)
MyClock Ver 1.18.2

http://egadget2.web.fc2.com/archives/Src_files/C_Sharp/MyClock_Ver1.18.2.html
(ソース付き)



◆バグ発生条件:
1) アラーム発動時に最大化を設定していること
2) カタログ操作で、既に存在する外観を追加した時に
 「既にカタログに有るので、追加しません」メッセージが表示されていること

◆バグ状況
上記条件下でアラームが発動して時計が最大化されると、アラームを解除するためのシングルクリックを受け付けない問題が発生します。
アラーム状態で最大化した時計は前面表示なので、[Ctrl][Alt]{Esc]を同時押し、タスクマネージャを起動してMyClockを強制終了するしかなくなります。


最大化でない場合は、「既にカタログに有るので、追加しません」メッセージで [OK]を押せば、シングルクリックを受け付けるので、対処できます。



実はもう1つのバグ対策も行いました。

時計本体に加えて、[時計のカスタマイズ]や[時計のカタログ]そして追加しないメッセージ画面など多くの画面が表示されるので、時計外観が小さな時はそれらに覆い隠され、一瞬見つからなくなります。そこでこれら画面を状況に応じて再配置するような仕様です。

時計も周りに再配置するので、アラームで最大化された時計も周りにも再配置され、スクリーンから追い出されてしまう問題がありました。

そこで、最大化される時は再配置しないように対処しました。


Re: MyClock Ver 1.18.1 (カタログ機能追加) 早速のデバッグ版です

管理人様、こんにちは!

MyClock Ver 1.18.1よりいただいております!(^^)

カタログ機能追加で一発で選択できるようになってますます便利になりましたね。
スライダーで選択する感覚が新鮮でいくつも追加して遊んでしまいました。(^^;
最初はちょっと戸惑ってしまいましたけどすぐに慣れたので無問題ですね。

欲を言えば、カスタマイズ画面上に現在のカタログ設定ボタン以外にすでに設定したカタログインデックスを直に呼び出せるボタンが3つくらい並んで、ボタン一発押しで選択出来るとなおよいかもしれません。(^^)

Re:緊急アップデート MyClock Ver 1.18.2 (カタログ機能追加)

うわ、速くも1.18.2がアップされてますね。
ってことで、またまたバグに気づくこともなく入れ替えました!(^^;

シンプルな使い方だとなかなかバグに遭遇しないのですが、今のところは無事に動いています。(^^)

Re: Re:緊急アップデート MyClock Ver 1.18.2 (カタログ機能追加)

sentaro様

こんばんは、


> うわ、速くも1.18.2がアップされてますね。
> ってことで、またまたバグに気づくこともなく入れ替えました!(^^;

良かったです。


> シンプルな使い方だとなかなかバグに遭遇しないのですが、今のところは無事に動いています。(^^)

こちらでも今のところ無事に動いています...(^^;



> カタログ機能追加で一発で選択できるようになってますます便利になりましたね。
> スライダーで選択する感覚が新鮮でいくつも追加して遊んでしまいました。(^^;
> 最初はちょっと戸惑ってしまいましたけどすぐに慣れたので無問題ですね。


時計にフォーカスして、[F1] → [S] → [C] でカタログ画面を出せ、この状態でカタログ画面がフォーカスされています。

カタログ画面がフォーカスされている時は、引き続き[A]キーで[追加]、[D}キーで[削除]、
矢印キーや[Home] [End] [Pg Up] [Pg Dn]キーでスライダーの操作ができ、
[Enter]キーで[閉じる] です。

なので、私はもっぱらキー操作で使っています。マウス操作はフォーカスする時だけって感じです。



ご要望のボタン一発操作ですが...


> 欲を言えば、カスタマイズ画面上に現在のカタログ設定ボタン以外にすでに設定したカタログインデックスを
> 直に呼び出せるボタンが3つくらい並んで、ボタン一発押しで選択出来るとなおよいかもしれません。(^^)

このボタンですが、任意のインデックスを登録して使いたいということでしょうか?
「ボタン操作での切替ができると嬉しい」というのは、どのような操作と動作を想定されています?

お聞かせください。

Re:Re: Re:緊急アップデート MyClock Ver 1.18.2 (カタログ機能追加)

管理人様、こんにちは!

>カタログ画面がフォーカスされている時は、引き続き[A]キーで[追加]、[D}キーで[削除]、
>矢印キーや[Home] [End] [Pg Up] [Pg Dn]キーでスライダーの操作ができ、
>[Enter]キーで[閉じる] です。
>なので、私はもっぱらキー操作で使っています。マウス操作はフォーカスする時だけって感じです。

あ、キー操作で操作するとマウス操作よりも直感的に操作できますね。これは便利です。(^^)


>このボタンですが、任意のインデックスを登録して使いたいということでしょうか?
>「ボタン操作での切替ができると嬉しい」というのは、どのような操作と動作を想定されています?

例えば、設定ボタンが3つあるとして、
最初は3つともにデフォルト設定が登録されています。
ここで、2つ目のボタンを押すと設定が2つ目の設定に切り替わり、その外観の設定が変更でき、時計の外観も変わって、そのまま2つ目の設定として保存される、という感じです。
設定画面がボタンを押すごとにそれぞれ画面設定画面が切り替わるイメージですね。
設定画面が変わったのを分かりやすいように画面設定画面の背景の色も替えるとかするといいかもしれません。
似たところではテレビのリモコンの4色キーのイメージです。(^^;

MyClock 新機能について

sentaro様


> あ、キー操作で操作するとマウス操作よりも直感的に操作できますね。これは便利です。(^^)

はい、私はどちらかと言えばキー操作派なので、自分で作るソフトは極力キー操作がし易いようにしています。

例えば[時計のカスタマイズ]画面でも[時計のカタログ]画面でも、[Tab]キーと矢印キーそして[Enter]と[Esc]キーで全ての操作が可能になっています。トラックバーでは [Home]と[End]が便利です。

マウスが必要と思われる画面のフォーカスの変更ですが、これもWindowsのショートカットでウィンドウを選択できます。
Windows10 ですと [Alt] を押しながら [Tab] を押すとデスクトップ上のウィンドウの画像が列挙されます。

[Alt]を押し続けながら[Tab]を押すたびに列挙されたウィンドウの選択が移動します。移動したところで [Alt]キーを話せば、選んだウィンドウにフォーカスが移動します。矢印キーで列挙ウィンドウの移動ができますが、[Alt]と[Tab]だけの方が便利でしょう。

Windows7でも有効かと思いますがチョット自信がありません。


沢山ウィンドウを開いている時はとても便利なので、[Alt] + {Tab] は覚えて損はないと思います。



脱線しましたが、新機能について...


> 例えば、設定ボタンが3つあるとして、
> 最初は3つともにデフォルト設定が登録されています。
> ここで、2つ目のボタンを押すと設定が2つ目の設定に切り替わり、その外観の設定が変更でき、時計の外観も変わって、そのまま2つ目の設定として保存される、という感じです。
> 設定画面がボタンを押すごとにそれぞれ画面設定画面が切り替わるイメージですね。
> 設定画面が変わったのを分かりやすいように画面設定画面の背景の色も替えるとかするといいかもしれません。
> 似たところではテレビのリモコンの4色キーのイメージです。(^^;


要するにプリセット機能ということでしょうか?


そうすると1つのプリセットには、通常の外観とアラーム設定時の外観がペアで設定されていると言った感じでしょうか?

そう考えると面白そうな機能ですね。プリセット用専用のINIファイルを使えるようにすれば、プリセットINIファイルをやりとりすることで、互いに交換もできて楽しそうです。例えば sentaro様のプリセットつまり「お気に入り」を私が簡単に使えることになりますよね。

「お気に入りプリセット機能」...勝手に想像を膨らませていますが、こんな感じで良いでしょうか?

互いにプリセットを交換するには、同じフォントがインストールされている必要がありますが、Windowsには代替えフォント機能があるのでそれを活かせるかも知れません。但しハングアップしないような対策が必要かも知れませんが...


個人的にはsentaro様のお気に入りに興味があったりします...(^^;)

私のお気に入りは、記事本文に記載している、Heightが小さくて太い文字の外観とscCLockっぽい外観の2セットだったりします。




Re:MyClock 新機能について

管理人様、こんにちは!

>[Alt]を押し続けながら[Tab]を押すたびに列挙されたウィンドウの選択が移動します。移動したところで [Alt]キーを話せば、選んだウィンドウにフォーカスが移動します。矢印キーで列挙ウィンドウの移動ができますが、[Alt]と[Tab]だけの方が便利でしょう。

ほぼマウス操作メインだったので、この機能、今まで使ったことがありませんでした。(^^;
ですが、いざ使ってみると、これは超便利で今後は使用頻度増えそうです。ありがとうございます!


>要するにプリセット機能ということでしょうか?
>そうすると1つのプリセットには、通常の外観とアラーム設定時の外観がペアで設定されていると言った感じでしょうか?
>そう考えると面白そうな機能ですね。プリセット用専用のINIファイルを使えるようにすれば、プリセットINIファイルをやりとりすることで、互いに交換もできて楽しそうです。例えば sentaro様のプリセットつまり「お気に入り」を私が簡単に使えることになりますよね。
>「お気に入りプリセット機能」...勝手に想像を膨らませていますが、こんな感じで良いでしょうか?

はい、ずばり、そういう感じになりますね。(^^)


>個人的にはsentaro様のお気に入りに興味があったりします...(^^;)

んと、たいしたことは何もない感じなのですが、
とりあえず、サイズは128x32でフォントはメイリオのボールド16pt白で背景がHotTrack、貼り付き設定にしています。
アラーム時はデフォルトで変更なしです。(^^;

フォントは電卓系のフォントとかがいつの間にか入っていたりするので、デジタル時計風のドットフォントとかも面白いです。

MyClock プリセット機能の追加について

sentaro様
皆様


> >要するにプリセット機能ということでしょうか?
> はい、ずばり、そういう感じになりますね。(^^)

プリセット機能ですが、少し時間を頂きたいと思います。

現状の延長戦なら、具体的な実装方法は明確なので作業するだけでプリセット機能はできると思うのですが、その前にいくつか気になっているC#の学習ポイントを先に取得した上で、今のコードを整理したいな、と思っています。


細かい話で恐縮ですが、現在の MyClock 自体は、
 ・4個の変数でアラーム機能を制御、
 ・24個の変数で時計の外観を制御、
しています。

カタログ機能では1つの外観について12個の変数、それを無制限個数保存できるのですが、時計の制御には無関係です。
プリセット機能では、1つのプリセットで24個の変数を複数個保存するだけで、これも時計の制御には無関係になると思います。


シンプルな作りを心がけて実際シンプルなのですが、「動作に重要なフラグ」が結構あって、それがC#らしくなくて、多少強引かも知れないといった感じがしています。

何故そう思うかと言えば、これまでの学習でC#の利点はコードの隠蔽性にあると感じています。実際に隠蔽性を確保することで、バグが出にくく、全体の見通しの良いコードが書けています。VC++には無いこの特長は、C#をもっと学習してみたいと思わせるには十分なものなんです。


C#らしくない使い方の「重要な役割のフラグ」と感じているのは、全て public static な変数(要するに大域変数) として、全てのクラスから自由にアクセスできるようにしていて、これが機能追加のたびに増えているので、果たしてこれで良いのだろうか?という疑問が沸いているからなんです。

動けば良いのならこれで問題なのですが、C#で記述可能なクラス、インターフェースなどの学習を少し深くやってから、それを MyClock に反映できれば、そうしたいと思っています。




> >個人的にはsentaro様のお気に入りに興味があったりします...(^^;)
>
> んと、たいしたことは何もない感じなのですが、
> とりあえず、サイズは128x32でフォントはメイリオのボールド16pt白で背景がHotTrack、貼り付き設定にしています。
> アラーム時はデフォルトで変更なしです。(^^;


私には新鮮な感じです。カタログに追加しちゃいまし(^^;



> フォントは電卓系のフォントとかがいつの間にか入っていたりするので、デジタル時計風のドットフォントとかも面白いです。

私のとことではドットマトリックス風のフォントは入っていなかったのですが、Casioサイトからダウンロードできる電卓のキーのフォントで横長の時計を表示して遊びました(^_^)/


[追記]
先週末に MyClock Ver 1.18.3 をアップしていました。
記事本文もチョット手を入れて、プログラミングTIPSを紹介する準備をしていますが、その際 アップデートのダウンロードができるようにしています。
http://egadget2.web.fc2.com/archives/Src_files/C_Sharp/MyClock_Ver1.18.3.html

Ver 1.18.3
  2017/03/18  ・改善
          トラックバー操作による時計の高さの変化に合わせてカタログ
          画面が時計に重ならないように上下に再配置する機能を暫定的
          に追加した。
          時刻が更新されるまでに素早くトラックバー操作した場合は、
          この機能は反映されず、時刻更新後なら反映される。
          - この再配置専用フラグの上げ下げはカタログ登録クラス
           (DispReg)で行い、時刻表示のタイミング(毎秒)に時計クラス            (Display)の専用フラグに同期させる. DispRegクラスで
           Displayクラスのフラグをモニタし、このフラグが上がれば
           カタログ画面を再配置する.

         ・改善
          タスクバーにピン止めしていてフォームが通常サイズの時に
          アイコンの上に表示される縮小版のキャプションバーの時刻
          表示を削除した。


よろしければ、どうぞ!

Re:MyClock プリセット機能の追加について

管理人様、こんにちは!

MyClock Ver 1.18.3 いただいております!
致命的なバグがないので、安心して使うことが出来ますね。
いつも使っているとあって当たり前、無いと困る系のアプリになりつつあります。(^^)


>プリセット機能ですが、少し時間を頂きたいと思います。
>現状の延長戦なら、具体的な実装方法は明確なので作業するだけでプリセット機能はできると思うのですが、その前にいくつか気になっているC#の学習ポイントを先に取得した上で、今のコードを整理したいな、と思っています。

了解です。(^^)


>私には新鮮な感じです。カタログに追加しちゃいまし(^^;

シンプルすぎてちょっと恐縮です。(^^;


>私のとことではドットマトリックス風のフォントは入っていなかったのですが、Casioサイトからダウンロードできる電卓のキーのフォントで横長の時計を表示して遊びました(^_^)/

ドットマトリックス風フォントはHP-50Gのデバッグエミュレータの時に入っていたようです。
http://www.hpcalc.org/details/3243
こちらのFONT8で20ptあたりでいい感じになります。(^^)

MyClock Ver 1.18.5.1いただいております。

管理人様、こんにちは!

MyClock Ver 1.18.5.1いただいております。

特大サイズの時計にするとかは試したことがなかったので全然気が付かなかったのですが、
普段の使い方が安定的に固定化してしまっているので、ずっと違和感なく使用できています。
ありがとうございます。(^^)
最新記事
最新コメント
カテゴリ
C# (3)
検索フォーム
Visitors
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム関数電卓は、プログラムを作り・使ってナンボ!

実際に触って気づいたこと、自作プログラム、電卓プログラミングについて書いています

おもしろい・役に立つならクリックしてください。励みになります。

人気ブログランキングへ


FC2ブログランキングへ


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

RSSリンクの表示
最新トラックバック
ブロとも申請フォーム

この人とブロともになる

QRコード
QR