TWORZENIE MODUŁÓW.
Ten artykuł stanowi rozszerzenie artykułu "Przekazywanie obiektów pomiędzy formularzami". Postaram się pokazać w jaki sposób można umieszczać w odrębnych plikach zbiory różnych funkcji a potem wykorzystywać je w projekcie. Taki zbiór funkcji nazywam modułem, ponieważ może być wielokrotnie wykorzystywany w różnych projektach.
Zaczniemy od wybrania z menu File | New | Unit:

Zostanie utworzony plik Unit1.cpp więc zapisujemy go w jakimś katalogu, np. 'C:\Modul' pod nazwą Modul1. Oczywiście nazwy są dowolne, taki moduł może być zapisany pod dowolną nazwą i w dowolnym katalogu. Jeżeli zajrzymy teraz do katalogu w którym zapisaliśmy moduł to zauważymy tam dwa pliki: Modul1.cpp i Modul1.h. Tak więc drugi plik został utworzony automatycznie i dobrze bo się nam przyda. Obydwa właśnie utworzone pliki wyglądają (a przynajmniej powinny) tak:
|
// Plik źródłowy np. Modul1.cpp |
|
// Plik źródłowy np. Modul1.h |
I w zasadzie moduł jest już gotowy do umieszczania funkcji. Ja napiszę prostą funkcję o nazwie IleWyrazow, zadaniem funkcji będzie policzenie ile wyrazów znajduje się w podanym zdaniu. Zaczniemy od utworzenia definicji funkcji w pliku źródłowym Modul1.cpp, trochę to nie poklei, ale pod koniec zrozumiecie dlaczego (chyba). Tak więc tworzymy funkcję:
|
// Plik źródłowy np. Modul1.cpp |
Funkcja jest w istocie bardzo prosta więc nie będę tutaj opisywał jak działa, bo nie to jest tematem tego artykułu. Istotne jest to, że utworzyliśmy moduł, a w nim funkcję, która coś tam robi. W zasadzie funkcja jest już gotowa do pracy i właściwie niczego jej już nie potrzeba, jednakże by móc taką funkcję wykorzystać w dowolnym projekcie należy zadeklarować tą funkcję w pliku nagłówkowym, jak już wspomniałem funkcja nie potrzebuje deklaracji, ponieważ definicja może być jednocześnie deklaracją funkcji, jednakże my potrzebujemy tej deklaracji żeby skorzystać z funkcji. Deklarację umieszczamy w pliku nagłówkowym Modul1.h, ale poprzedzamy ją słowem kluczowym extern, słowo to służy do eksportowania funkcji na zewnątrz:
|
// Plik źródłowy np. Modul1.h |
No i to właściwie prawie wszystko. Należy tutaj dodać, że w module można zdefiniować tysiące funkcji i nie wszystkie muszą posiadać deklarację w pliku nagłówkowym, np. możemy stworzyć funkcję, która będzie wykorzystywana tylko wewnątrz modułu przez inne funkcję, jednak jeżeli chcemy wykorzystać jakąś funkcję poza modułem, to należy umieścić jej deklarację w pliku nagłówkowym i poprzedzić ją słowem kluczowym extern,
które informuje kompilator, że zmienna została zdefiniowana w pliku
źródłowym tego modułu.
Przejdźmy do następnego etapu. Tworzymy nowy projekt i włączamy do niego nasz moduł. W tym celu wybieramy w menu Project | Add to Project...:

W oknie dialogowym wskazujemy plik modułu i tym samym włączmy go do naszego projektu:

To jednak nie wszystko, by wykorzystać nasz moduł w wybranym pliku projektu, np. Unit1.cpp należy w sekcji include tegoż pliku dodać instrukcję: #include "Modul1.h":
|
// Plik źródłowy np. Unit1.cpp |
Teraz można już w pełni korzystać z naszego modułu. W celu sprawdzenia czy to działa proponuję umieścić na formularzu (np. Form1) obiekt Button1 i w zdarzeniu OnClick tego przycisku wywołamy naszą funkcję:
|
// Plik źródłowy np. Unit1.cpp |
I to już wszystko. Poniżej zamieszczam kod źródłowy z przykładem wykorzystania modułu z dwiema funkcjami.
modul.zip - archiwum z kodem źródłowym w BCB 4.
Opracował: Cyfrowy Baron