16X16、16X8ドット フォント エディタ
制作目的
グラフィックLCDのフォントを作成する目的で急遽作成した代物です。
時間が無いので、超手抜きプログラムですが、これが有ると無いとでは大違いです。
当局はPC用のプログラム開発セットは持っていないので、昔購入したOffice2000の内、
Access2000のVBAで構成してみました (注1)
当然ですが、実行にはAcsess2000或いはそれ以降のソフトが必要です。
アーカイブを展開すると、VBAソースコード等すべて見られます。
適当に修正して使用して頂ければ、幸いです。
16X16ドットの他に16X8ドットのフォントエディタを、ほぼ同じ構成で作ってあります。
古いソフトで申し訳ありませんが、アクセス2000以外での動作確認はしていません。
動作させるための注意点
このプログラムはDAOによるレコードアクセスをしています。
DAOを使用するには,「MIcrosoft DAO3.6ObjectLibrary」が必要です。
Access2000では標準で、このライブラリを参照設定されていません。
Visual Basic Editorを起動して[ツール]-[参照設定]メニューで、これを選択して下さい。
フォーム画面等の編集モードでの[ツール]では設定できません。
そこで、[参照設定]ダイアログボックスが表示されます。
実行時の「Recordset」、「Database」などで「ユーザー定義型は定義されていません」等、
のエラー発生する理由がこれです。
ピクセル数が多くなると、編集途中のデータを失うとショックが大きいです・・・
一応、8ドット版と比較して、編集画面を破棄される場合の警告を多くはしていますが、
むやみに機能ボタンやCRキーを押さないようご注意してください。
グラフィックLCDのフォントを作成する目的で急遽作成した代物です。
時間が無いので、超手抜きプログラムですが、これが有ると無いとでは大違いです。
当局はPC用のプログラム開発セットは持っていないので、昔購入したOffice2000の内、
Access2000のVBAで構成してみました (注1)
当然ですが、実行にはAcsess2000或いはそれ以降のソフトが必要です。
アーカイブを展開すると、VBAソースコード等すべて見られます。
適当に修正して使用して頂ければ、幸いです。
16X16ドットの他に16X8ドットのフォントエディタを、ほぼ同じ構成で作ってあります。
古いソフトで申し訳ありませんが、アクセス2000以外での動作確認はしていません。
動作させるための注意点
このプログラムはDAOによるレコードアクセスをしています。
DAOを使用するには,「MIcrosoft DAO3.6ObjectLibrary」が必要です。
Access2000では標準で、このライブラリを参照設定されていません。
Visual Basic Editorを起動して[ツール]-[参照設定]メニューで、これを選択して下さい。
フォーム画面等の編集モードでの[ツール]では設定できません。
そこで、[参照設定]ダイアログボックスが表示されます。
実行時の「Recordset」、「Database」などで「ユーザー定義型は定義されていません」等、
のエラー発生する理由がこれです。
ピクセル数が多くなると、編集途中のデータを失うとショックが大きいです・・・
一応、8ドット版と比較して、編集画面を破棄される場合の警告を多くはしていますが、
むやみに機能ボタンやCRキーを押さないようご注意してください。
下記をクリックしてダウンロード
フォントエディタ ダウンロード
↑ 展開フォルダの内容
8x8フォントエディタと同じ所にあります。
と言う訳で、アーカイブはどちらも同じです。
↑ (2)起動後に出てくるウインドウ
ここで、モードを選択します。
↑ (3)プログラム本体の起動画面
データが無いので、真っ新です
↑ 最初のデータを保存した所
適当に入力、保存しました・・・
↑ 再編集中です
鼻の所を弄っているので、そのピクセルに
該当するデータ窓が赤枠で明示されます。
↑ 16x8ドットモードの編集画面
↑ 18x8ドットモードでの編集
既存のデータを呼び出した所
フォントエディタ ダウンロード
↑ 展開フォルダの内容
8x8フォントエディタと同じ所にあります。
と言う訳で、アーカイブはどちらも同じです。
↑ (2)起動後に出てくるウインドウ
ここで、モードを選択します。
↑ (3)プログラム本体の起動画面
データが無いので、真っ新です
↑ 最初のデータを保存した所
適当に入力、保存しました・・・
↑ 再編集中です
鼻の所を弄っているので、そのピクセルに
該当するデータ窓が赤枠で明示されます。
↑ 16x8ドットモードの編集画面
↑ 18x8ドットモードでの編集
既存のデータを呼び出した所
プログラムの基本構成概念
ドットマトリックス編集画面
8x8フォントエディタと同じ構造で、根性で拡張したと、いった感じです。
フォーム画面に「トグルボタン」を256個配置し、 (^_^;) タイヘンデシタ・・・
マトリックス編集画面としています。
マトリックスの構成は、縦8bit×16桁、それを2行で16X16としています。
マトリックス画面の下部は縦8bitの1バイト分を、それぞれ16進数で表示しています。
これらは、マトリックス内のボタンを押すごとに、対応するデータバイトとビット演算しています。
その結果は、すぐに数値表示窓に書き込んでいます。
同時にボタンのピクチャのリンク画像を切り替えています。
その結果、ボタンをクリックするたびに表示色が変化します。
これがマトリックス編集画面の基本構造となっています。
これらは、トグルボタンのビフォア・アップデートのソースコードを参照して下さい。
その表示窓は、マトリックス画面を操作すると、対応する表示窓に赤枠にて明示されます。
これはマトリックス内ボタンのフォーカスを得る・失うイベント・プロシージャを利用し、
赤枠の表示ON/OFFをVBAで切り替えることで実現しています。
ビットデータバイト表示窓
セーブしたデータを再度読み込む場合は、上記の逆の動作をさせています。
ロードしたビットデータをドットマトリクスに表現するには、トグルボタンをVBAで操作します。
これは対応データバイトのビットを調べ、対応するマトリックス・ボタンに対して、
ボタンON/OFFとピクチャリンクの変更を行っています。
それは「LineDispXX」と言うVBA内の作成した関数(プロシージャ)で行っています。
上記いずれも、ソースコード記述自体は短い文なのですが、数が多いので閉口します・・・
リスト画面
リスト窓の表示は、クエリ経由で保存されたレコードのIDと標題を表示させています
リスト内をクリックすると、イベント・プロシージャ内で該当レコードのIDのみを取得します
その後、「レコード読込」ボタンのイベントプロシージャで該当レコードを読み込みます。
テキスト出力
作成したフォントファイル出力はPICアッセンブラにあわせてあります。
DW DATA、- DATA (8バイト連続)
でテキストファイル出力します。
これをPICアッセンブラソースファイルにコピペします。
その他詳細はVBAソースコードおよびフォーム上各部品のプロパティを参照して下さい。
VBAソースには、なるべくコメントを多く記載したつもりです。
何をやっているのか解りずらいと思いますが、ご勘弁を・・・
操作方法 メニュー
(1)準備
展開フォルダには下記のファイルがあります。
① 16X16FONT01.mdb
② TGL_OFF.bmp
③ TGL_ON.bmp
(2)ACCESSの起動
①のファイルをダブルクリックすると、アクセスが起動します。
と同時に最初のウインドウが開きますので、それでモード選択します。
(3)プログラム本体の起動
「16x16ドットモード」をクリックします。
これで編集操作画面が表示されます。
左記画像を参照して下さい
1)データ作成用ボタンマトリックス
16x16=256個のボタンが表示されています
これをマウスでクリックすると、グレーのボタンがブラックに変化します。
色がグレーの時、ボタンOFFで、対応bit=0と言う事になります。
色がブラックの時、ボタンONで、対応bit=1と言う事になります。
縦8bitの直下にある赤色枠のテキストボックスが、対応する8bitデータです
その縦8bitのデータを16進数でリアルタイムで表示します。
このボックスに16進数で直接書き込むと、マトリックス画面にも反映します
2)データの作成
①「新規作成」ボタンをクリックします。
②ボタンマトリックス画面をクリックして、8X8ビットデータを作成します。
③右下の「画像標題」に作成したビットデータの標題を記入します。
ここまでの状態では、データを作成しただけで、保存されてはいません。
次の「レコード保存」ボタンをクリックして、初めてハードディスク等に保存されます。
3)セーブ
「レコード保存」ボタンをクリックします
1つのフォントデータはID番号で管理されています。
以前のデータを消さないようにID番号には注意して下さい
セーブが成功すると、リスト画面にそのID番号と標題が表示されます。
4)ロード
リスト画面には過去に作成されたデータのID番号・標題一覧が表示されています。
リスト画面に表示されているデータリストをクリックすると、該当IDを読み込みます。
「レコード読込」をクリックすると、該当データを読み込み、マトリックスに表示されます。
それまで編集していたデータは破棄されますので、注意して下さい。
5)再編集
ロードしたフォントデータはマトリックスに表示されています。
それをマウスで再編集します。
その後、「レコード保存」をクリックして、上書きします。
6)テキスト出力
「テキスト出力」をクリックすると、カレントフォルダにテキスト出力します。
デフォルトでは”LcdFont8x8.TXT”のファイルネームで書き込みます。
ファイルネーム、出力フォルダは確認画面で変更できます。
7)終了
「終了」ボタン或いはウインドウ右上の「X」で閉じます
まとめ
動作も軽く、ひょいひょいとフォントを作成できます。
テキスト出力もPIC用なので、便利
自分用を自分で作ると、こんなプログラムでも、結構便利に使えます。
使いながら修正できますしね、
できれば、ダウンロードしたプログラム単体で動作すれば良いのですが・・・
アクセス本体が古いので、無料のランタイムでは動作しませんでした。
いずれ、単体で動作できるようにしたいとは思っていますが、何時になることやら
気が付いたバグはこの場で公開していきます。
追記 2016年12月21日(水)
16x16dotフォントエディタのバグを修正しました
ドットマトリックス編集画面
8x8フォントエディタと同じ構造で、根性で拡張したと、いった感じです。
フォーム画面に「トグルボタン」を256個配置し、 (^_^;) タイヘンデシタ・・・
マトリックス編集画面としています。
マトリックスの構成は、縦8bit×16桁、それを2行で16X16としています。
マトリックス画面の下部は縦8bitの1バイト分を、それぞれ16進数で表示しています。
これらは、マトリックス内のボタンを押すごとに、対応するデータバイトとビット演算しています。
その結果は、すぐに数値表示窓に書き込んでいます。
同時にボタンのピクチャのリンク画像を切り替えています。
その結果、ボタンをクリックするたびに表示色が変化します。
これがマトリックス編集画面の基本構造となっています。
これらは、トグルボタンのビフォア・アップデートのソースコードを参照して下さい。
その表示窓は、マトリックス画面を操作すると、対応する表示窓に赤枠にて明示されます。
これはマトリックス内ボタンのフォーカスを得る・失うイベント・プロシージャを利用し、
赤枠の表示ON/OFFをVBAで切り替えることで実現しています。
ビットデータバイト表示窓
セーブしたデータを再度読み込む場合は、上記の逆の動作をさせています。
ロードしたビットデータをドットマトリクスに表現するには、トグルボタンをVBAで操作します。
これは対応データバイトのビットを調べ、対応するマトリックス・ボタンに対して、
ボタンON/OFFとピクチャリンクの変更を行っています。
それは「LineDispXX」と言うVBA内の作成した関数(プロシージャ)で行っています。
上記いずれも、ソースコード記述自体は短い文なのですが、数が多いので閉口します・・・
リスト画面
リスト窓の表示は、クエリ経由で保存されたレコードのIDと標題を表示させています
リスト内をクリックすると、イベント・プロシージャ内で該当レコードのIDのみを取得します
その後、「レコード読込」ボタンのイベントプロシージャで該当レコードを読み込みます。
テキスト出力
作成したフォントファイル出力はPICアッセンブラにあわせてあります。
DW DATA、- DATA (8バイト連続)
でテキストファイル出力します。
これをPICアッセンブラソースファイルにコピペします。
その他詳細はVBAソースコードおよびフォーム上各部品のプロパティを参照して下さい。
VBAソースには、なるべくコメントを多く記載したつもりです。
何をやっているのか解りずらいと思いますが、ご勘弁を・・・
操作方法 メニュー
(1)準備
展開フォルダには下記のファイルがあります。
① 16X16FONT01.mdb
② TGL_OFF.bmp
③ TGL_ON.bmp
(2)ACCESSの起動
①のファイルをダブルクリックすると、アクセスが起動します。
と同時に最初のウインドウが開きますので、それでモード選択します。
(3)プログラム本体の起動
「16x16ドットモード」をクリックします。
これで編集操作画面が表示されます。
左記画像を参照して下さい
1)データ作成用ボタンマトリックス
16x16=256個のボタンが表示されています
これをマウスでクリックすると、グレーのボタンがブラックに変化します。
色がグレーの時、ボタンOFFで、対応bit=0と言う事になります。
色がブラックの時、ボタンONで、対応bit=1と言う事になります。
縦8bitの直下にある赤色枠のテキストボックスが、対応する8bitデータです
その縦8bitのデータを16進数でリアルタイムで表示します。
このボックスに16進数で直接書き込むと、マトリックス画面にも反映します
2)データの作成
①「新規作成」ボタンをクリックします。
②ボタンマトリックス画面をクリックして、8X8ビットデータを作成します。
③右下の「画像標題」に作成したビットデータの標題を記入します。
ここまでの状態では、データを作成しただけで、保存されてはいません。
次の「レコード保存」ボタンをクリックして、初めてハードディスク等に保存されます。
3)セーブ
「レコード保存」ボタンをクリックします
1つのフォントデータはID番号で管理されています。
以前のデータを消さないようにID番号には注意して下さい
セーブが成功すると、リスト画面にそのID番号と標題が表示されます。
4)ロード
リスト画面には過去に作成されたデータのID番号・標題一覧が表示されています。
リスト画面に表示されているデータリストをクリックすると、該当IDを読み込みます。
「レコード読込」をクリックすると、該当データを読み込み、マトリックスに表示されます。
それまで編集していたデータは破棄されますので、注意して下さい。
5)再編集
ロードしたフォントデータはマトリックスに表示されています。
それをマウスで再編集します。
その後、「レコード保存」をクリックして、上書きします。
6)テキスト出力
「テキスト出力」をクリックすると、カレントフォルダにテキスト出力します。
デフォルトでは”LcdFont8x8.TXT”のファイルネームで書き込みます。
ファイルネーム、出力フォルダは確認画面で変更できます。
7)終了
「終了」ボタン或いはウインドウ右上の「X」で閉じます
まとめ
動作も軽く、ひょいひょいとフォントを作成できます。
テキスト出力もPIC用なので、便利
自分用を自分で作ると、こんなプログラムでも、結構便利に使えます。
使いながら修正できますしね、
できれば、ダウンロードしたプログラム単体で動作すれば良いのですが・・・
アクセス本体が古いので、無料のランタイムでは動作しませんでした。
いずれ、単体で動作できるようにしたいとは思っていますが、何時になることやら
気が付いたバグはこの場で公開していきます。
追記 2016年12月21日(水)
16x16dotフォントエディタのバグを修正しました