﻿﻿﻿﻿﻿こんにちは。フェンリルにはいろいろなエンジニアがいて、お気に入りの言語も様々です。Pascal)の面白いところを、ちょっと便利なクラスを作って紹介したいと思います。ページをご一読ください。画像などのリソースファイルをバイナリファイルに埋め込んで、プログラムで使用することはよくあると思います。今日は実行ファイルにリソースとして埋め込まれた任意の画像をロードして使用する汎用的に使える画像リソース管理クラスを作成したいと思います。●実行時型情報を使うリソースに埋め込まれたデータをプログラム内で使う時には、概ね以下のことをするかと思います。1、データを保持するクラスのインスタンスを生成。2、インスタンスにデータを読み込む。3、必要なくなったらインスタンスを解放。上記の3つの処理を個々のプロパティに対して記述すると冗長なコードになってしまいますが、今回は、基本クラスで実行時型情報(RTTI)からプロパティの一覧を取得して、プロパティ名と同名のリソースをロードするようにし、サブクラスでプロパティ宣言とプロパティのインスタンス生成に使用する実際のクラスを記述するようにします。以下は基本クラスのコードです。サブクラスの作成サブクラスの作成方法は簡単です。継承クラスを返し、個々のリソースの名前と同名のプロパティを宣言するだけです。"Label_Blue.png"サブクラスはこのようになります。作成したサブクラスを使うプログラム内で使用するときは例えば以下のようにします。FPngImageRes.Free;end;このような手法を用いると、個々のプロパティのためのコードはプロパティ宣言だけになりますので、状況によっては大幅に記述するコード量を削減することができます。基本クラスを宣言したユニットをライブラリパスが通った場所に置いておけば、いろいろな場面で手軽に使うことが出来るのでおすすめです。実行時型情報を手軽且つ便利に使うことが出来ます。今回ご紹介させていただいた手法は、キーとプロパティを関連付けたい場面では応用することが可能です。馴染みのないエンジニアの方も多いかと思いますが、面白そうだな!と思っていただけたなら幸いです。今後もフェンリルへの応援をよろしくお願いします。