borland cpp builder cw10


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 cw1
borland cpp builder cw5
borland cpp builder cw8
borland cpp builder cw3
borland cpp builder cw9
borland cpp builder cw2
borland cpp builder
borland cpp builder cw12
borland cpp builder cw11 algorytm
borland cpp builder cw4
borland cpp builder cw6
borland cpp builder cw7
borland cpp builder cw13
SQL access in Borland C Builder

więcej podobnych podstron