C++ Builder. Programowanie obiektowe. Ćwiczenie 10. 1
______________________________________________________________________
PROGRAMOWANIE OBIEKTOWE
ĆWICZENIE 10
C++ BUILDER 6.0 PE
" Pasek menu
" Pasek narzędziowy
" Obiekt MainMenu
" Obiekt ToolBar
©2004 Jerzy Kluczewski
2 C++ Builder. Programowanie obiektowe. Ćwiczenie 10.
______________________________________________________________________
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ęć.
______________________________________________________________________
©2004 Jerzy Kluczewski
C++ Builder. Programowanie obiektowe. Ćwiczenie 10. 3
______________________________________________________________________
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.
©2004 Jerzy Kluczewski
4 C++ Builder. Programowanie obiektowe. Ćwiczenie 10.
______________________________________________________________________
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.
______________________________________________________________________
©2004 Jerzy Kluczewski
C++ Builder. Programowanie obiektowe. Ćwiczenie 10. 5
______________________________________________________________________
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.
©2004 Jerzy Kluczewski
6 C++ Builder. Programowanie obiektowe. Ćwiczenie 10.
______________________________________________________________________
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.
______________________________________________________________________
©2004 Jerzy Kluczewski
C++ Builder. Programowanie obiektowe. Ćwiczenie 10. 7
______________________________________________________________________
Testowanie działania obiektu ToolButton1
Uruchom projekt i sprawdz jak działa menu oraz przycisk na pasku narzędziowym:
Po wczytaniu pliku graficznego do edytora (tj. do obiektu img) mamy taki widok:
©2004 Jerzy Kluczewski
8 C++ Builder. Programowanie obiektowe. Ćwiczenie 10.
______________________________________________________________________
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
______________________________________________________________________
©2004 Jerzy Kluczewski
C++ Builder. Programowanie obiektowe. Ćwiczenie 10. 9
______________________________________________________________________
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 sprawdz jak działa menu oraz przycisk na pasku narzędziowym:
©2004 Jerzy Kluczewski
10 C++ Builder. Programowanie obiektowe. Ćwiczenie 10.
______________________________________________________________________
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 .
______________________________________________________________________
©2004 Jerzy Kluczewski
C++ Builder. Programowanie obiektowe. Ćwiczenie 10. 11
______________________________________________________________________
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 zródłowe zostały
opublikowane w czasopiśmie PC World Kompuer numer 11/2003.
Aby dodać kod zró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
©2004 Jerzy Kluczewski
12 C++ Builder. Programowanie obiektowe. Ćwiczenie 10.
______________________________________________________________________
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 SKOCCZYAEM
______________________________________________________________________
©2004 Jerzy Kluczewski
Wyszukiwarka
Podobne podstrony:
borland cpp builder cw1borland cpp builder cw5borland cpp builder cw8borland cpp builder cw3borland cpp builder cw9borland cpp builder cw2borland cpp builderborland cpp builder cw12borland cpp builder cw11 algorytmborland cpp builder cw4borland cpp builder cw6borland cpp builder cw7borland cpp builder cw13SQL access in Borland C Builderwięcej podobnych podstron