Artykuł: C++ - Pierwsza aplikacja
Programowanie obiektowe
Dzięki C++ możemy programować obiektowo, a ułatwia nam to forma w C++ Builderze. Jednak zawsze ktoś zapyta, czy można samemu tworzyć kod formy, obiektów i komponentów - odpowiedź brzmi: Tak, można. Kod formy można porównać do CSS - pomaga on określić położenie, kolory, czcionki, obramowania czy przyleganie. Forma powstała jednak po to, aby programista mógł skupić się na kodzie właściwym aplikacji - na wszystkich funkcjach, instrukcjach i warunkach. Dzięki formie można zrobić jedynie układ programu, tzn. gdzie ma się znajdować jakiś przycisk, panel, lista czy etykieta. Wszystkie akcje do tych obiektów pisane są jednak w kodzie właściwym i wszystko tutaj zależy już od programisty.
Ale jak?
Można sobie zadać pytanie - jak nasz program będzie działał od razu w środowisku graficznym Windowsa? C++ Builder jest na tyle pomocny, że sam nam generuje odwołanie do API Windowsa i dzięki temu łączy kod formy razem z kodem źródłowym w jeden kod projektu, po czym kompiluje go tworząc program pod Windows. Można sprawdzić tą procedurę wybierając z menu Projekt pozycję "View Source". Powinien pokazać nam się podobny kod:
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } catch (...) { try { throw Exception(""); } catch (Exception &exception) { Application->ShowException(&exception); } } return 0; }
Forma
Mimo tego, że formę można modyfikować za pomocą myszki, przedstawię teraz jak budowany jest jej kod. Aby zobaczyć kod formy klikamy prawym przyciskiem myszy na formę i wybieramy "View As Text". Widzimy teraz poniższy kod:
object Form1: TForm1 Left = 192 Top = 114 Width = 696 Height = 480 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 end
Inspektor obiektów z zaznaczonym atrybutem "Name". Name pozwala na określenie nazwy obiektu, która potem wykorzystywana jest w kodzie właściwym. Domyślna nazwa formy to "Form1" i możemy ją zmienić na np. "Formatka".
Atrybuty
Inspektor Obiektów pozwala na zmianę atrybutów każdego obiektu. Głównym atrybutem jest, jak już pisałem wcześniej, Name. Bardzo ważny dla wszystkich atrybut to Caption, który pozwala na zmianę etykiety obiektu (np. napisu na przycisku, czy tytułu formy). Aby zmienić tytuł formy (ten, który pokaże się na pasku), zmieniamy wartość atrybutu Caption. Zmieńmy go na "Moja pierwsza aplikacja".
Forma ze zmienionym atrybutem "Caption"
Jeszcze nieco teorii: zanim przejdziemy do pisania kodu właściwego, lepiej ustawić sobie wszystkie ważne atrybuty formy. Mały test:
Zmniejsz rozmiar okna formy i naciśnij F9. Zobacz, czy formę da się rozciągać. Teraz wyłącz program, zmień atrybut BorderStyle na BsSingle i ponownie naciśnij F9. Teraz formy nie da się już rozciągać.
Zmiana atrybutu BorderStyle jest bardzo przydatna. Jeżeli nie chcemy, aby program dało się maksymalizować lub minimalizować, należy skorzystać ze zmiany atrybutu BorderIcons, gdzie można zmienić wartości dla poszczególnych podatrybutów (bsSystemMenu - zamykanie ("krzyżyk"), bsMaximize - maksymalizacja, bsMinimalize - minimalizacja, bsHelp - pomoc ("pytajnik")) na True (tak) lub False (nie).
Wiele atrybutów można przestawić w Inspektorze Obiektów, dlatego polecam się nimi "pobawić" i potestować. Dla osób znających język angielski nie powinno być z tym kłopotów.
Niech się stanie
Czas zacząć tworzyć swoją pierwszą aplikację, dość patrzenia się na pustą formę. W oknie narzędziowym odszukujemy komponentu "Label" z symbolem dużej litery "A" na domyślnej zakładce (Standard). Jest to etykieta, którą umieszczamy na formie. Widać, że w Drzewie Projektu pokazał się nowy obiekt, a w liście rozwijalnej Inspektora Obiektów widać jego nazwę (Label1). Zmieniamy Name na "Etykieta" i Caption na Moja pierwsza aplikacja. Czcionka jest mała, więc zmieniamy jej rozmiar w Inspektorze Obiektów.

Wciskamy F9 i widzimy, że w programie widać już jakiś napis. Ale nadal nic się nie dzieje. Wstawmy więc przycisk, wybieramy komponent "Button" i umieszczamy go na formie. Zmieniamy "Caption" na "Kliknij na mnie". Czas na napisanie kodu. Wybieramy zakładkę "Events" w Inspektorze Obiektów i klikamy dwa razy na akcję "OnClick", a ponieważ jest to akcja domyślna, możemy kliknąć dwa razy na sam przycisk, co spowoduje przeniesienie nas do kodu właściwego, gdzie kompilator wstawi domyślną aukcję:
void __fastcall TFormatka::Button1Click(TObject *Sender)
{
}
#include "Unit1.h"
Kontynuując: gdy mamy już stworzoną akcję OnClick (która jak nazwa wskazuje wywoła się przy kliknięciu na przycisk) napiszmy teraz prostą procedurę, która wyświetli okno dialogowe z daną wiadomością i przyciskiem OK. Skorzystamy z funkcji ShowMessage, która bez konieczności tworzenia nowej formy wyświetli okno dialogowe. Zatem piszemy:
void __fastcall TFormatka::Button1Click(TObject *Sender)
{
ShowMessage("Tak działa moja pierwsza aplikacja"); // Ważne jest, aby tekst pisać w znakach " "
}
Teraz uruchamiamy aplikację (F9), po czym klikamy na przycisk "Kliknij na mnie". Efekt jest widoczny - pokazuje się okno dialogowe z tekstem "Tak działa moja pierwsza aplikacja".

Jak widzimy w pasku tytułowym komunikatu widnieje napis "Project2". Aby zmienić główną nazwę aplikacji, wchodzimy w Project -> Options i przechodzimy na zakładkę Application. Tam można zmienić ikonę aplikacji jak i jej nazwę.

Dzięki tej zmiane po kliknięciu na "Kliknij na mnie" zobaczymy okno z tytułem "Mój program".
Czas na trochę bardziej skomplikowane zadanie - zróbmy tak, aby po kliknięciu na przycisk napis "Etykieta" zmienił się na "Blablabla". W tym celu należy napisać poniższy kod:
void __fastcall TFormatka::Button1Click(TObject *Sender)
{
Etykieta->Caption = "Blablabla";
}
Na koniec stwórzmy aplikację, która wyświetli komunikat, zmieni nazwę etykiety i zamknie się sama po naciśnięciu przycisku OK. Tą procedurą podsumuję cały ten artykuł. Napiszmy taki kod:
void __fastcall TFormatka::Button1Click(TObject *Sender)
{
Etykieta->Caption = "Blablabla"; // Zmieni się nazwa etykiety
ShowMessage("Program zostanie zamknięty"); // Wyświetli się komunikat
Close(); // Program zostanie zamknięty
}
Jak już mówiłem - projekt C++ składa się z wielu plików. Na szczęście C++ Builder dba o to, aby wszystkie zostały poprawnie zapisane w jednym miejscu. W tym celu wybieramy File -> Save All lub File -> Save Project As, co pozwoli nam zapisać dotychczasowy projekt i potem go wczytać ponownie. Projekt ten przyda się do następnego rozdziału. W tym krótkim artykule przedstawiłem najprostrze funkcje języka C++. Następny: "Zmienne, warunki i pętle" jest poświęcony stawianiu warunków, pętli i w dalszym ciągu najprostrzych funkcji.
Dodano: 4 marca 2006, Wróć do "Jak zacząć" - Idź do "Zmienne, warunki i pętle "



















