ども、Norimakiです。

RSSでスケジュールを管理するツールを作ってみようかと思いました。

無料ブログなどを複数使っていると、
どのブログを更新したのかが分からなくなってきて
忘れ去られるブログが出てきてしまうことがあります。

そこで、RSSで更新した日を記録しておいて、
複数ブログの更新状況をモニタリングできれば
更新忘れもないだろうと。

というわけで、
RSSスケジューラーなるツールを作ろうと思ったのでした。

 
ツールをたくさん作ってしまうと
データの管理が面倒臭くなるのですが、
データを共有する仕組みができれば
それも克服できるので取り組んでみようかと。

とりあえずはこんなところで。

ではでは。
Norimakiでした。

ども、Norimakiです。

今回はStringGridのセルの背景色を変えるという事でやってみようかと思います。
背景色を変えるという事で、OnDrawCellというイベントを使います。

StringGridには問題があるらしく、DefaultDrawingをFalseにしてからでないと
不具合が生じるなどと言われていますが、個人的にはその不具合について
どういうものなのかわからないので、取り合えずTrueで使ってます。

何か問題が発生すれば考えます。

「TStringGridのセルの背景色を変える」の続きを読む…

ども、Norimakiです。

今回はアプリケーション固有のファイルについて書いてみます。

これは単にそのアプリケーションがどのような挙動をするのか
という事を設定するだけのファイルになります。

まずはソースをご覧ください。

「アプリケーション固有のファイル 【GV_Application】」の続きを読む…

ども、Norimakiです。

今回はプロパティリストクラスを書いてみました。
こちらもまだ発展途上で中途半端な機能がありますが、
今の所、問題がないのでそのまま使っています。

そもそも何ができるかという事ですが、
ソースにも書いてありますが、

・コンポーネントとプロパティを登録して(AddComp)
・コンポーネントのプロパティ値を取得してリスト化して(SetCompProp)
・リスト化したコンポーネント値をコンポーネントに設定する(RestoreCompProp)

基本的にはこの3つを行います。

コンポーネントのプロパティ値をリスト化して保存し、
必要に応じてプロパティ値を回復するというクラスです。

用途としては、フォームの位置やサイズ、
スプリッタでサイズを変更したパネルの幅などを記憶しておき、
アプリケーションの終了時にファイルなどに保存。

そして次回アプリケーションを起動したときに、
そのファイルを読み込んでプロパティ値を回復させる。

という感じで使用しようと思っています。

これに、以前紹介したイベントマネージャを組み合わせて、
FormCreate部でコンポーネントとプロパティを登録するだけで
読込・復帰・保存をやってくれるようにしています。

中には自分で作った関数などを使用していることもあって、
このままでは使えませんが、そのうちにその部分も合わせて
記事にする予定ですので、しばしお待ちください。

「プロパティリスト」の続きを読む…

ども、Norimakiです。
とりあえず、今使っているイベントマネージャのソースです。

色々と手直しするところがあるんですが、
現時点ではこれで動いているのでこのまま使っているという次第で。

基本的にはAddEventでイベントを登録して、
DoEventsでイベントを実行させるという手順になります。

実際にイベントを実行させる場所としては、

>> Delphiのプロジェクトファイルをいじる その2

でも挙げた通り、システム的にはプロジェクトファイルになります。

あとは、アプリケーションごとに必要な場合は
アプリケーションでその都度、DoEventsを呼べば
登録したイベントを呼んでくれます。
「イベントマネージャ 【ソース編】」の続きを読む…

ども、Norimakiです。
今回はアプリケーションベースファイル【NY_Application.pas】について。

>> Delphiのプロジェクトファイルをいじる その2

ここら辺(↑)で使用する関数を NY_Application.pas で定義します。基本的にはアプリケーションの開始と終了の際に処理する部分を定義します。

・アプリケーションで使用する共通クラスの領域確保、解放
・多重起動チェック
・エラーメッセージ、エラーコードの定義
・システムエラーメッセージ処理
・浮動小数点例外処理
・システム変数の設定

・フォーム位置、サイズの保存、復元
・ユーザーアカウント処理
・IniFile処理
・ライセンスチェック

こんな感じです。

で、NY_から始まるユニットは基本的にアプリケーションごとの変更は不要です。
なので、共通ファイルなわけですが。

アプリケーションごとに変更が必要なファイルに関しては、GP_といった
Gから始まるユニット名になっています。

「アプリケーションベースファイル 【NY_Application.pas】」の続きを読む…

ども、Norimakiです。

以前、

>> Delphiのプロジェクトファイルをいじる

ということで、プロジェクトファイルについて書いてみました。
その際、

・GP_StartUpCheck
・GP_Init
・GP_Fin
・GP_Finalize

の関数については改めてという事だったので、
ここでその関数について軽くご紹介しておきます。

「Delphiのプロジェクトファイルをいじる その2」の続きを読む…

ども、Norimakiです。
2つのStringGridの左上の位置を同期させたいという場合があります。

正確には、左上のColあるいはRowのどちらか一方の同期。
ということになりますが。

具体的にはグリッドで表のようなものを表示させる際に、
横に長い表になる場合、一番左のタイトルだけは固定で表示させておきたい。

なんていう場合は多いと思います。
そういう時に使えそうなTipsです。

「2つのStringGridの左上の位置を同期させる」の続きを読む…

ども、Norimakiです。
今回はTVirtualStringGrid的なものが出来ないか考えてみようと思います。

TreeViewに関してはTVirtualTreeViewなるコンポーネントが存在します。

TVirtualTreeViewを使えばTVirtualStringGrid的な事も出来るんですが、
Grid使うならやっぱりStringGridかなとも思うわけで。

ということで、チャレンジ的にちょっとやってみようかと思い立ちました。

「TVirtualStringGridを考えてみる」の続きを読む…

ども、Norimakiです。
今回はイベントマネージャについて考えてみようかなと。

アプリケーションで何かを実行させたいタイミングというものがあります。
たとえばボタンをクリックしたり、ある項目をダブルクリックしてみたり。

そんなタイミングでイベントを発生させたいという思いが沸き起こってくる。
そんな時ってないでしょうか?

もうちょっと具体的に言うとプラグインをツールに組み込もうとする際に、
こういった思いが沸き起こってきます。

何かのアクションをトリガーにしてプラグインのある機能を起動させる。

こんなイメージです。

「イベントマネージャの作成 【思い付き編】」の続きを読む…