borland cpp builder cw10

background image

C++ Builder. Programowanie obiektowe. Ćwiczenie 10. 1
______________________________________________________________________

©2004 Jerzy Kluczewski










PROGRAMOWANIE OBIEKTOWE

ĆWICZENIE 10




C++ BUILDER 6.0 PE


Pasek menu

Pasek narzędziowy

Obiekt MainMenu

Obiekt ToolBar














background image

2

C++ Builder. Programowanie obiektowe. Ćwiczenie 10.

______________________________________________________________________

______________________________________________________________________

©2004 Jerzy Kluczewski

I.

Wstęp

Zanim rozpoczniesz ćwiczenie, utwórz jakiś podkatalog w katalogu Projects oraz

skopiuj do niego następujące pliki z ćwiczenia nr 9:

edytor.bmp

jasnosc.bmp

koniec.bmp

kontrast.bmp

krawedzie.bmp

nasycenie.bmp

negatyw.bmp

open.bmp

relief.bmp

rgb.bmp

rozmycie.bmp

save.bmp

saveas.bmp

szarosci.bmp

wyostrzenie.bmp

ToolBar9.bpr

ToolBar9.cpp

ToolBar9.res

ToolBar9Unit1.cpp

ToolBar9Unit1.h

ToolBar9Unit1.dfm

FotoEdit.ico (z dyskietki)

Zmień nazwy plików:

ToolBar9.bpr

na

FotoEdit.bpr

ToolBar9.cpp

na

FotoEdit.cpp

ToolBar9.res

na

FotoEdit.res

ToolBar9Unit1.cpp

na

FotoEditUnit1.cpp

ToolBar9Unit1.h

na

FotoEditUnit1.h

ToolBar9Unit1.dfm

na

FotoEditUnit1.dfm


Nasz projekt aplikacji zapiszemy w plikach rozpoczynających się od nazwy

FotoEdit. Zmień tytuł formularza Form1 na Foto Edytor.


Celem niniejszego ćwiczenia jest zaprojektowanie edytora grafiki służącego do

prostego retuszu zdjęć.




background image

C++ Builder. Programowanie obiektowe. Ćwiczenie 10. 3
______________________________________________________________________

©2004 Jerzy Kluczewski



II.

Tworzenie podstawowych obiektów

Wstawianie obiektów OpenPictureDialog1, SavePictureDialog1


Wstawiamy następujące obiekty do formularza:

OpenPictureDialog

SavePictureDialog


Z zakładki Dialogs wybieramy odpowiednie komponenty i kładziemy je na formularz.


OpenPictureDialog1, SavePictureDialog1:


Wstawianie obiektu StatusBar1



Z zakładki Win32 wybieramy komponent StatusBar (czyli pasek stanu) i kładziemy go
na formularz.


StatusBar pojawi się na dole formularza.



background image

4

C++ Builder. Programowanie obiektowe. Ćwiczenie 10.

______________________________________________________________________

______________________________________________________________________

©2004 Jerzy Kluczewski



Wstawianie obiektu Image1



Z zakładki Additional wybieramy komponent Image (czyli obraz) i kładziemy go na
formularz.


Ustawiamy jego rozmiary tak, aby pokrywał cały wolny obszar roboczy formularza.

Zmiana właściwości obiektu Image1


Wszystkie właściwości w Anchors ustawiamy na true.


Nazwę obiektu (właściwość Name) zmieniamy na img.


Właściwość Stretch (rozciąganie) ustawiamy na true.












background image

C++ Builder. Programowanie obiektowe. Ćwiczenie 10. 5
______________________________________________________________________

©2004 Jerzy Kluczewski


III.

Projektowanie zdarzenia „Otwórz”

Modyfikujemy obiekt MainMenu1


Zaznaczamy MainMenu1:


klikamy prawym przyciskiem myszy i uruchamiamy „Menu Designer”.


W okienku „Menu Designer’a” wybieramy „Plik









Otwórz”.


Do zdarzenia „OnClick” przypisujemy metodę (z poprzednich ćwiczeń wiesz jak to
zrobić automatycznie). Wpisujemy poniższy kod C++ do wnętrza metody
TForm1::Otwrz1Click.

if( OpenPictureDialog1->Execute() )
{
img->Picture->LoadFromFile( OpenPictureDialog1->FileName );
if( !img->Picture->Bitmap->Empty )
{
img->Picture->Bitmap->PixelFormat = pf32bit;
}
}


UWAGA: ustawienie formatu grafiki na pf32bit powoduje że każdy kolor jest
reprezentowany przez trzy 8-bitowe składowe R,G,B. W sumie daje to ponad 16,7
miliona kolorów.



background image

6

C++ Builder. Programowanie obiektowe. Ćwiczenie 10.

______________________________________________________________________

______________________________________________________________________

©2004 Jerzy Kluczewski



Modyfikujemy obiekt ToolButton1


Zaznaczamy ToolButton1:


Zmieniamy właściwość Caption tego obiektu na „&Otwórz


Zmieniamy właściwość MenuItem tego obiektu na „Otwrz1” (wybieramy ją z listy)


W ten sposób przyporządkowaliśmy klinięcie w przycisk do istniejącej już (ale
pośrednio – za pomocą MainMenu1) metody którą steruje otwieraniem pliku.





background image

C++ Builder. Programowanie obiektowe. Ćwiczenie 10. 7
______________________________________________________________________

©2004 Jerzy Kluczewski

Testowanie działania obiektu ToolButton1


Uruchom projekt i sprawdź jak działa menu oraz przycisk na pasku narzędziowym:



Po wczytaniu pliku graficznego do edytora (tj. do obiektu img) mamy taki widok:



background image

8

C++ Builder. Programowanie obiektowe. Ćwiczenie 10.

______________________________________________________________________

______________________________________________________________________

©2004 Jerzy Kluczewski

IV.

Projektowanie zdarzenia „Zapisz”

Modyfikujemy obiekt MainMenu1


Zaznaczamy MainMenu1:


klikamy prawym przyciskiem myszy i uruchamiamy „Menu Designer”.


W okienku „Menu Designer’a” wybieramy „Plik









Zapisz”.


Do zdarzenia „OnClick” przypisujemy metodę (z poprzednich ćwiczeń wiesz jak to
zrobić automatycznie). Wpisujemy poniższy kod C++ do wnętrza metody
TForm1::Zapisz1Click.

SavePictureDialog1->FileName = OpenPictureDialog1->FileName;
if( SavePictureDialog1->Execute() )
img->Picture->Bitmap->SaveToFile( SavePictureDialog1->FileName );


UWAGA: Obiekt pobiera nazwę pliku taką jaka została zapamiętana przez dialog
otwierający plik.

Modyfikujemy obiekt ToolButton2


Zaznaczamy ToolButton2:


Zmieniamy właściwość Caption tego obiektu na „&Zapisz


background image

C++ Builder. Programowanie obiektowe. Ćwiczenie 10. 9
______________________________________________________________________

©2004 Jerzy Kluczewski


Zmieniamy właściwość MenuItem tego obiektu na „Zapisz1” (wybieramy ją z listy)


W ten sposób przyporządkowaliśmy klinięcie w przycisk do istniejącej już (ale
pośrednio – za pomocą MainMenu1) metody którą steruje zapisywaniem obrazu img
do pliku na dysku.

Testowanie działania obiektu ToolButton2


Uruchom projekt i sprawdź jak działa menu oraz przycisk na pasku narzędziowym:










background image

10

C++ Builder. Programowanie obiektowe. Ćwiczenie 10.

______________________________________________________________________

______________________________________________________________________

©2004 Jerzy Kluczewski


V.

Projektowanie zdarzenia „Zapisz

jako...”

Modyfikujemy obiekt MainMenu1


Podobnie jak w zdarzeniu poprzednim modyfikujemy obiekt MainMenu1z tym że
zmiany dotyczyć teraz będą:

W okienku „Menu Designer’a” dotyczy to pozycji „Plik









Zapisz jako...”.


Do zdarzenia „OnClick” przypisujemy metodę TForm1::Zapisz1Click. o treści
następującej (przepisz ją):

SavePictureDialog1->FileName = "";
if( SavePictureDialog1->Execute() )
img->Picture->Bitmap->SaveToFile( SavePictureDialog1->FileName );

Dla obiektu ToolButton2 zmieniamy właściwość Caption tego obiektu na „&Zapisz
jako...
” oraz zmieniamy właściwość MenuItem tego obiektu na „Zapiszjako1
(wybieramy ją z listy).

VI.

Projektowanie zdarzenia „Koniec”

Modyfikujemy obiekt MainMenu1


Zaznaczamy MainMenu1:


klikamy prawym przyciskiem myszy i uruchamiamy „Menu Designer”.


W okienku „Menu Designer’a” wybieramy „Plik









Koniec”.

background image

C++ Builder. Programowanie obiektowe. Ćwiczenie 10. 11
______________________________________________________________________

©2004 Jerzy Kluczewski



Do zdarzenia „OnClick” przypisujemy metodę (z poprzednich ćwiczeń wiesz jak to
zrobić automatycznie). Wpisujemy poniższy kod C++ do wnętrza metody
TForm1::Koniec1Click.

Application->Terminate();

UWAGA: Powyższa instrukcja powoduje, że obiekt Application zostaje natychmiast
zakończony.

VII.

Dodawanie modułu funkcji

Jak dodać do projektu gotowy moduł zawierający funkcje ?


Skopiuj z dyskietki dwa pliki:

fotoretusz.h

fotoretusz.cpp


do katalogu zawierającego projekt Foto Edytora.


UWAGA:

Pliki te zawierają gotowe funkcje służące do działań na podstawowych filtrach oraz
efektach graficznych. Autorem ich jest Paweł Brągoszewski, a kody źródłowe zostały
opublikowane w czasopiśmie PC World Kompuer numer 11/2003.

Aby dodać kod źródłowy zawarty w powyższych plikach należy wykonać polecenie

Project









Add to Project... po czym wybrać odpowiedni plik i zatwierdzić.


VIII.

Projekt formularza FormJasnosc


Jak utworzyć nowy formularz ?


Do tego celu wykorzystujemy polecenie:

Plik









New









Form


background image

12

C++ Builder. Programowanie obiektowe. Ćwiczenie 10.

______________________________________________________________________

______________________________________________________________________

©2004 Jerzy Kluczewski


Następnie zapisujemy go do pliku (Plik









Zapisz jako...)


Nadajemy mu nazwę UnitJasnosc.cpp

W „Obiect Inspectorze” zmieniamy jego właściwości:

„Caption”

na „Jasność

„Name”

na „FormJasnosc


Zawartość formularza FormJasnosc


Nasz nowy formularz będzie oknem z dwiema miniaturami grafiki, które umożliwi nam
wygodne dopasowanie jasności kolorów.



Zawiera on :

trzy etykietki Label1, Label2, Label3, (zakładka Standard)

dwa obiekty graficzne rys1, rys2 typu TImage, (zakładka Additional)

obiekt tbJasnosc typu TTrackBar, (zakładka Win32)

obiekt edJasnosc typu TEdit (zakładka Standard)

oraz dwa przyciski BitBtn1, BitBtn2 typu TBitBtn (zakładka Additional).


Przechodzimy do formularza FormJasnosc i wstawiamy powyższe obiekty – ich
położenie oraz rozmiary dopasowujemy według powyższego rysunku.



TU SKOŃCZYŁEM


Wyszukiwarka

Podobne podstrony:
borland cpp builder cw13
borland cpp builder cw9
borland cpp builder cw2
borland cpp builder cw4
borland cpp builder cw12
borland cpp builder cw3
borland cpp builder id 92024 Nieznany
borland cpp builder cw5
borland cpp builder cw1 id 9202 Nieznany
borland cpp builder cw6
borland cpp builder cw7
borland cpp builder cw11 id 920 Nieznany (2)
borland cpp builder cw8
borland cpp builder cw13
borland cpp builder cw9

więcej podobnych podstron