2013年05月30日

コンポーネントの切り替えでdfmファイルを直接書き換える

BDEからFireDACコンポーエントの書き換えなどを行う場合、dfmファイルを直接書き換えることで作業の短縮を図ることができる。
ただ、危険なので必ずバックアップを取ってから行うほうが良い。失敗すると開けなくなります。

一応、試しているのは、Delphi2007までです。これ以降のバージョンについても可能だとは思いますが、Unicodeで保存された場合は、どうなるかはまだ試していません。
まず、dfmファイルをテキスト形式で保存する必要がある。
テキスト形式かどうかは、フォーム上で、マウス右クリックで表示されるメニューで確認できる。
テキスト形式で保存された場合、テキストエディタで書き換え可能となるので、文字列変換機能などを使って、まとめて、クラスを変えてしまうことができます。
この時、pas側は変更しておく必要がありません。IDEで開いて、保存するときに、IDEが変換してくれます。
事前に、変更していくのもよいかもしれませんが、この方法だと変換されるコンポーネントが確認できます。
また、元のコンポーネントにあって、切り替え後のコンポーネントにない、プロパティやイベントは、削除されますがこれも、削除する旨の警告メッセージが出ます。

いきなり、実際に使っているプログラムを使うと、コンポーネントが多いので確認が難しいため、テスト用に、コンポーエントが少ない画面を作ってから行うほうが良いともいます。

dfmファイルを見ているとわかりますが、継承オブジェクトは、inherited。継承していないのは、objectで定義されています。
フォームも同様で、TFormから継承したFormを、TFormから直接継承するのではなく、間に継承Formを挟みたいときは、pasの書き換えとともに、dfmファイルの先頭行の、Formの定義の"object"を"inherited"に書き換えてあげれば可能です。
pasの TForm1 = class(TForm)の書き換えだけでは、ダメで、dfmの変更も必要です。
posted by しんくそふと at 22:26| Comment(0) | TrackBack(0) | 開発TIPS
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/68624063
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック