2012-03-08 11 views
-1

私はずっと前に書いたアプリを持っています。これは、TtableとTSQLの多くのコンポーネントを持つデータベースアプリケーションで、メインフォームに配置されています(非常に面倒です)。私は、アプリケーションを更新して、私はdatamoduleを使用したい。私がそうするなら、私はすべてのコードをTable.fieldbyNameからDatmodule.FieldByNameに変更しなければならないでしょう。私は、多くの異なる呼び出しで、(Table.Edit、Table.Postなど)、さまざまなコンポーネントの多くでこの型のものを行う必要があります。私の質問は...コンパイラに指示する方法はありますか?現在のフォームでオブジェクトを見つけられない場合は、TDatamoduleでそのオブジェクトを探しますか?私は、 'With DataModule do'構文を使用することができることを認識していますが、他に何かがあることを期待しています。ここでネームスペースでできることはありますか?接頭辞なしの共通オブジェクトへのアクセス

答えて

1

これに近づける正しい方法は、GExperts Grep Searchingのような検索/置換ツールを使ってtTable参照の名前を変更することだと思います。例:現在 "Dm"という名前のデータモジュールにある "tSales"というテーブルがある場合、現在のプロジェクト内のすべてのファイルに対して "tSales"というGrep Searchを実行してから、 "Dm.tSales "その結果、より読みやすく、保守性の高いコードになります。

+4

リネームリファクタリングでより安全な方法で行うことはできませんか? grepの問題は、構文を理解することができず、同じ名前を持つ他の無関係なオブジェクトの名前を変更する可能性があることです。 –

+0

私はDavidに同意します。リファクタリングはこの場合もっと信頼できます... – RBA

+2

しかし、単純なリネームリファクタリングではありません...もし私が絶対に大部分のコードを同じ(大きな "IF")のままにしたいのであれば、単に "TableName"という名前のプロパティを追加しますそのテーブルを返し、ゲッターを使用してデータモジュールを参照してください – GDF

関連する問題