2012-09-27 32 views
18

Jaki jest cel posiadania modułu DataModule w projekcie? Czy ma jakieś szczególne właściwości w porównaniu do normalnej klasy lub modułu? Jakie są konwencje tego, do czego jest zwykle używany?Co to jest DataModule (dm) w Delphi?

+7

@iManBiglari, czy to nie jest tutaj każde pytanie? –

+1

@UweRaabe Rzeczywiście –

+1

+1; świetne pytanie! Wielu ludzi nawet nie myśli, gdzie można by użyć DM. –

Odpowiedz

18

Moduł danych jest niewizualnym "formularzem" (pojemnikiem), który może zawierać niewizualne komponenty (zazwyczaj komponenty bazy danych, chociaż można dodać dowolny komponent, taki jak okna dialogowe i komponenty Indy), które mogą być następnie udostępniane wielu formularze.

Ta wiki wyjaśnia dalej: Delphi Wikki.

+0

+1; Podstawy w prostym zdaniu. Zwykle mam 'TXyzActionDataModule' zawierający instancje' TAction' (zapakowane w 'TActionList' lub coś podobnego) dla grupy formularzy/ramek, które są powiązane z jakimś typowym' Xyz' feture. –

+0

+1, a mówiąc o tym, w Delphi XE2, pamiętam raz próbując dodać do modułu danych komponenty inne niż bazy danych, a tylko składniki związane z bazą danych pokazywałyby się w palecie ... Od tego czasu byłem w stanie Zrób tak. –

9

Zazwyczaj jest używany dla obiektów Dataset i DataSource, aby zachować je w centralnej lokalizacji. Moduł DataModule może zawierać tylko niewidoczne komponenty, ale nie ogranicza się tylko do komponentów Data Access. Możesz umieścić na nim TTimer i SaveDialog itp ...

Może być przydatny, gdy masz wiele formularzy, które wymagają zmiany kodu tylko w jednym miejscu, a nie w każdym formularzu.

6

W aplikacjach komputerowych zwykle mam jeden moduł danych zawierający kilka TImageList s. Jeśli moje aplikacje używają TCP/IP, komponenty są na osobnym module danych. Oczywiście prawie cała logika mojej aplikacji dotyczy różnych modułów danych. Jeśli potrzebuję utworzyć aplikację usługową, umieszczam logikę w module danych, dzięki czemu mogę łatwo utworzyć wokół niej aplikację biurową do debugowania. I na koniec, najrzadziej umieszczam moje komponenty dostępu do danych na modułach danych przez większość czasu.

9

Moduł danych różni się od prostej klasy, że można go zaprojektować w projektancie formularzy, a jego komponenty można edytować za pomocą inspektora obiektów. Moduł danych ma również zasób, który jest przesyłany strumieniowo w pliku DFM.

Ponadto moduł danych może być używany przez inne datamoduły, formularze i ramki, a następnie jego komponenty są również dostępne do wyboru w inspektorze obiektów.