Jak korzystać z biblioteki dll ?

0

Cześć, mam takie pytanie odnośnie jak efektywnie wykorzystywać formularz zawarty w bibliotece dll. Jest to pytanie z grupy szkoleniowych (fajne określenie), więc proszę osoby które nie chcą mi pomóc niech wcale nic nie piszą - liczy się tylko wartościowa (merytoryczna) pomoc.
Swoje jakieś proste aplikacje piszę zawsze w ten sam sposób:

  • plik głównego formularza
  • plik DataModule. w którym są wszystkie procedury komunikujące się z serwerem SQL i wykonujące wszelkie instrukcje SQL na serwerze
  • pliki innych formularzy potrzebnych w programie np: kartoteka osób/ kontrahentów, kartoteka towarów itp,

Tak się zastanawiałem nad tym czy przynajmniej formularzy zajmujących się kontrahentami i towarami nie mógłbym wsadzić do biblioteki dll i korzystać z tej biblioteki w innych programach. Wiem że tak można zrobić, ale wiedzieć a zrobić to już co innego. Nie wiem jak to zrobić np żeby formularz "Kontrahenci" zawarty w bibliotece dll komunikował się z DataModule i wykonywał zawarte w nim procedury SQL i przyjmował dane z serwera.
I tu jest moja prośba czy ktoś z was by był tak uprzejmy żeby to mi wytłumaczyć, podać jakiś przykład.

PS korzystam z Delphi 7 SE

1

Nie do końca rozumiem z czym masz problem ale spróbuję opisać jak to mogłoby działać:
Masz apkę, w niej DataModul, na którym TConnection do bazy danych, dynamicznie lub statycznie łączysz DLL, w której jest formularz. Formularz wywołujesz jak wszystko z dll poprzez odpowiednie funkcje eksportowe
Biblioteki DLL
Jeśli chciałbyś przekazać connection do formularza z dll to pozostaje parametr do funkcji lub jakiś event. Reszta powinna banglać bez problemów ;)

1

Ja z kolei nie widzę powodu aby DataModule był w pliku exe, natomiast formatki w pliku dll. U mnie tak się pisze, że całość (DataModule oraz okna edycji) umieszczam w tym samym pliku dll.

Co do połączenia z bazą danych, to klasy łączące się do bazy danych znajdują się w kolejnej dll'ce która udostępnia m.in. funkcję podłączającą datasety, query do TConnetion zawartym w oddzielnym tej dll.

Jeśli chciałbyś jednak w pliku dll zawrzeć tylko formatkę, to najprościej będzie na formatce położyć komponent TDataSource, natomiast poprzez konstruktor formatki przekazać TDataSet (albo pochodny) i pozostaje Ci tylko połączyć DataSource z przekazanym DataSet. Wtedy wywołując funkcję kartoteki towarowej/kontrahentów przekazujesz swój komponent wykonujący zapytanie sql i gotowe.

1 użytkowników online, w tym zalogowanych: 0, gości: 1