misc タブに TXmlPropStorage と TIniPropStorage というコンポーネントがある。
TFormのSessionProperties で指定したプロパティ(ちなみにフォームのプロパティだけではなくフォーム上にある子コントロールのプロパティも指定できる)の値をフォームクローズ時にファイルに保存し、次回フォーム作成時にその値をファイルから復元してくれるというコンポーネントである。
最初は、便利なコンポーネントがあって嬉しいな、という気持ちになるが、いざアプリに使おうとなると、余程の手抜きアプリでないかぎり使えないものであることが分かる。エラー処理が皆無なのである。
もちろん、ソースを追ってコンポーネントの仕組みなどを調べて、エラー処理をうまく追加することは可能かもしれないが、そんな手間をかけるくらいなら、TStrings クラスなどを使って、フォーム作成時にプロパティの値をファイルに保存し、フォームクローズ時にファイルから復元するコードを書いたほうが早い。TStrings クラスの便利さと、Lazarus のイベント処理の容易さが産んだ悲劇といえるかもしれない。
0 件のコメント:
コメントを投稿