私はDBGridを持つmainFormを持っていますが、ユーザーが選択するすべてのDBGrid列を示すCheckListBoxを持つ2番目のフォームがあります。 Form2で、MainFormにあるDBGridを参照する必要があります。 この2番目のフォームは、dbdgridカラムに接続されているすべてのプロシージャを処理するので、簡単に再利用できます。 それはアイデアでしたが、私はDBGridリファレンスを渡す方法を見つけませんでした。 可能ですか?別のフォームからDBGridを参照する方法
1
A
答えて
2
、あなたのForm2上で、プロパティを定義
TForm2
[...]
private
FGrid : TDBGrid
public
property Grid : TDBGrid read FGrid write FGrid;
、あなたがTForm2のインスタンスを作成した後、ちょうどForm2の上、次に
Form2.Grid := MainForm.DBGrid1;
を行い、 Grid
を変更したいものを有効にして、MainForm.DBGrid1に変更を加えます。
1
可能ですか?
質問はむしろ私が欲しいものを達成する良い方法はありますか?
Form2
が異なるフォームからの制御と基本的に働いていた場合には、保守でしょうか?他のフォームが他のフォームのコンポーネントへの参照を保持する必要がある場合はどうなりますか?- コントロールが異なる形式で使用されている場合、バグを発見するのに1年以内にどれくらい難しいでしょうか?
- このような解決策はSOLID principlesと一致しますか?
これらの質問に答えると、別のアプローチを探すのに役立ちます。
separate UI and business logicを考慮する必要があります。 A TDBGrid
は、データベースからアプリケーションにデータを取得する便利な方法ですが、同時にデータをロードして表示するため、単一責任原則に違反しています。アプリケーション内の基本データプロバイダとして使用しないでください。ソフトウェアのより深いUI独立層からSQLクエリを実行します。コンテナに結果を格納し、さまざまなフォームに必要なすべての方法で表示します。そして、あなたが尋ねた質問に答える
+0
私はあなたが原則として正しいと思いますが、より良い方法を見つけるためにどこから始めるべきかはわかりません。さらに、これは、DBGrid列のレイアウトを表示するセカンダリフォームが常にDBGridを使用する場合です。 – Stark
関連する問題
- 1. 別のフォームから1つのフォームのコントロールを参照する
- 2. 別のフォルダ(ソリューションエクスプローラ)でフォームを参照する方法
- 3. JavaScript:別のフォームからコントロールを参照する
- 4. IE.documentをVBAの別のSubから参照する方法
- 5. フォームからレポートを参照する方法
- 6. 別のスキーマからjsonスキーマ定義を参照する方法
- 7. クラウドフォーメーション別のスタックから管理ポリシーを参照する方法
- 8. 子クラスから別のクラスの子クラスへの参照方法
- 9. あるクラスのスプライトオブジェクトプロパティを別のクラスから参照する方法は?
- 10. 別のUserControlから1つのUserControlのTextBoxを参照する方法
- 11. java8:別のメソッド参照からのメソッド参照
- 12. ANTを使用して別のプロジェクトからAndroidプロジェクトを参照する方法
- 13. 1つの列から別の表を参照する方法は?
- 14. VBA:値を参照する変数からセル参照を返す方法
- 15. Oracle Workshop for WebLogicでEJBを別のEJBから参照する方法は?
- 16. Liferay 7.0サービスビルダー:別のモジュールからエンティティを適切に参照する方法
- 17. フォームのフラグチェックボックスと別のフォームのリサイズを参照
- 18. 別のフォームのプロシージャでフォームを参照できません
- 19. 別のプロジェクトからの参照mdf
- 20. ng-repeatから別の要素にアイテムを渡す方法や参照する方法はありますか?
- 21. 参照テーブルからの最初の照合参照値でのみ、参照テーブルからデータを取得する方法はありますか?
- 22. xamlの別のモデルを参照する方法は?
- 23. メイクファイルの参照を別のメイクファイルにする方法
- 24. 別のクラスでAsyncTaskの結果を参照する方法は?
- 25. SBTでは、別のプロジェクトのサブプロジェクトを参照する方法は?
- 26. dbgrid autofitをフォームに変換
- 27. モジュール内部から特定のフォーム要素を参照する
- 28. サブクラス化されたtxtboxをフォームで参照する方法
- 29. 部分的なフォームを別のフォルダで参照する方法はありますか?ショーの内部
- 30. r data.table別の別のdata.tableからの参照/参照を実行する条件付き合計
提案をお寄せいただきありがとうございます。私は試して、それが動作するように見えます。 Form2では、メインフォームのDBGrid列を移動するときに何かする必要があります。メインフォームでは、私はOnColumnMovedを使用していたでしょう... – Stark
元の質問に答えましたので、緑色の「ダニ」アイコンをクリックして受け入れると良いでしょう。 OnColumMovedイベントでは、Form2に同じパラメータシグネチャを持つプロシージャを渡し、コードを記述し、MainForm.DBGrid1のOnColumnMovedをそのイベントに割り当てます。 – MartynA