borland cpp builder cw5


C++ Builder. Programowanie obiektowe. Ćwiczenie 5. 1
______________________________________________________________________
PROGRAMOWANIE OBIEKTOWE
ĆWICZENIE 5
C++ BUILDER 6.0 PE
" Projektowanie prostego odtwarzacza muzyki
" Obiekt TButton
" Obiekt TListBox
" Obiekt TMediaPlayer
" Obiekt TSpeedButton
" Obiekt TLabel
" Obiekt TStatusBar
©2004 Jerzy Kluczewski
2 C++ Builder. Programowanie obiektowe. Ćwiczenie 5.
______________________________________________________________________
I. Wstęp
Wykonaj aplikację w języku Borland C++, która będzie słu\yła do odtwarzania
plików dzwiękowych WAV i MP3 znajdujących się w katalogu bie\ącym.
Najpierw  ubierzemy naszą aplikację w niezbędne elementy.
Nasz projekt będzie zawierał następujące obiekty:
" TButton *Button1;
" TButton *Button2;
" TListBox *ListBox1;
" TMediaPlayer *MediaPlayer1;
" TSpeedButton *SpeedButton1;
" TSpeedButton *SpeedButton2;
" TLabel *Label1;
" TLabel *Label2;
" TStatusBar *StatusBar1;
Nasz projekt plikacji zapiszemy w plikach rozpoczynajÄ…cych siÄ™ od nazwy MMedia5.
Utwórz projekt aplikacji za pomocą polecenia File New Application
Zapisz projekt aplikacji za pomocÄ… polecenia File Save All ...
Zapisz projekt do plików:
" formularza do MMedia5Unit1.cpp,
" głównego pliku projektu MMedia5.bpr
Zmień tytuł formularza Form1 na MMedia5.
Ustaw opcje projektu za pomocÄ… polecenia Project Options ...
a w oknie zmień następujące opcje:
Polecenie: Project Options Application Load Icon
W polu  Nazwa pliku ustaw MMedia.ico.
Po zatwierdzeniu w panelu  Icon pojawi się właściwa ikona.
Przejdz do zakładki  Linker
Wyłącz opcję  Use dynamic RTL .
Przejdz do zakładki  Packeges
Wyłącz opcję  Build with runtime packages .
______________________________________________________________________
©2004 Jerzy Kluczewski
C++ Builder. Programowanie obiektowe. Ćwiczenie 5. 3
______________________________________________________________________
II. Wstawianie obiektów
Wstawianie obiektów na formularz
Wyposa\ymy teraz nasz formularz w niezbędne elementy.
Z zakładki Standard wybieramy obiekty klasy TButton i przenosimy je na formularz
oraz dopasowujemy ich właściwości do wymogów u\ytkownika.
Z zakładki Standard wybieramy obiekt klasy TListBox i przenosimy go na formularz
oraz dopasowujemy jego właściwości do wymogów u\ytkownika.
Z zakładki System wybieramy obiekt klasy TMediaPlayer i przenosimy go na
formularz oraz dopasowujemy jego właściwości do wymogów u\ytkownika.
Z zakładki Additional wybieramy obiekty klasy TSpeedButton i przenosimy je na
formularz oraz dopasowujemy ich właściwości do wymogów u\ytkownika.
SpeedButton1
©2004 Jerzy Kluczewski
4 C++ Builder. Programowanie obiektowe. Ćwiczenie 5.
______________________________________________________________________
SpeedButton2
Z zakładki Standard wybieramy obiekty klasy TLabel i przenosimy je na formularz
oraz dopasowujemy ich właściwości do wymogów u\ytkownika.
Z zakładki Standard wybieramy obiekt klasy TStatusBar i przenosimy go na
formularz oraz dopasowujemy jego właściwości do wymogów u\ytkownika.
Widok projektowanego formularza
Teraz nasz formularz wygląda teraz następująco:
______________________________________________________________________
©2004 Jerzy Kluczewski
C++ Builder. Programowanie obiektowe. Ćwiczenie 5. 5
______________________________________________________________________
III. Projektowanie obiektu MediaPlayer
Właściwości obiektu MediaPlayer
Rozwiń właściwości ColoredButtons obiektu MediaPlayer1
Ustaw btPlay, btPause, btStop na true a pozostałe na false.
Rozwiń właściwości EnableddButtons obiektu MediaPlayer1
Ustaw btPlay, btPause, btStop na true a pozostałe na false.
©2004 Jerzy Kluczewski
6 C++ Builder. Programowanie obiektowe. Ćwiczenie 5.
______________________________________________________________________
Analogicznie ustaw właściwości dla VisibleButtons:
Dla obiektu TLabel2 we właściwości  Caption wpisz  Stopped
IV. Programowanie metod
Metoda reagujÄ…ca na przycisk  Dodaj pliki muzyczne
Zaprogramujemy teraz metodę która uruchamia się, gdy klikniemy przycisk
 Dodaj pliki muzyczne (Button1):
Uwaga: ograniczamy listę plików do MP3 i WAV.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
struct ffblk ffblk;
int done;
TFileName FileName;
ListBox1->Clear();
/* dodaj do listy pliki MP3 */
done = findfirst("*.mp3",&ffblk,0);
while (!done)
{
FileName = ffblk.ff_name;
ListBox1->Items->Add(FileName);
______________________________________________________________________
©2004 Jerzy Kluczewski
C++ Builder. Programowanie obiektowe. Ćwiczenie 5. 7
______________________________________________________________________
done = findnext(&ffblk);
}
/* dodaj do listy pliki WAV */
done = findfirst("*.wav",&ffblk,0);
while (!done)
{
FileName = ffblk.ff_name;
ListBox1->Items->Add(FileName);
done = findnext(&ffblk);
}
}
Teraz wykonaj kompilacjÄ™ projektu (F9)
Jeśli oka\e się uzyskasz błędy kompilacji, to dodaj po dyrektywie #include
następujące linie (dyrektywy są oznaczone kolorem zielonym):
#include
#include
#include
#include
Je\eli w obiekcie TlistBox nie pojawiły się \adne pliki to znaczy, \e nie skopiowałeś
plików muzycznych do katalogu w którym znajduje się projekt MMedia5.
Skopiuj jakieś pliki przykładowe (*.WAV, *.MP3) do tego katalogu.
Uruchom projekt (F9)
Przechodzimy do programowania zachowania następnego przycisku.
©2004 Jerzy Kluczewski
8 C++ Builder. Programowanie obiektowe. Ćwiczenie 5.
______________________________________________________________________
Metoda reagujÄ…ca na przycisk  Koniec
Zaprogramujemy teraz metodę która uruchamia się, gdy klikniemy przycisk
 Koniec (Button2):
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Application->Terminate();
}
Metoda reagująca na wybór pliku w  ListBox1
Zaprogramujemy teraz metodę która uruchamia się, gdy klikniemy na nazwę
wybranego pliku (obiekt ListBox1):
void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
int ItemCount, Index;
ItemCount = ListBox1->Items->Count;
if (ItemCount>0)
{
for (Index=0; Index if (ListBox1->Selected[Index])
{
StatusBar1->SimpleText=ListBox1->Items->Strings[Index];
MediaPlayer1->FileName=ListBox1->Items->Strings[Index];
MediaPlayer1->Open();
}
}
}
Programowanie metody zachowania siÄ™ statusu MediaPlayer
Po linii zawierajÄ…cej deklaracjÄ™ TFormMuzyka *FormMuzyka; dopisz :
void DispMode(void)
{
switch ( Form1->MediaPlayer1->Mode )
{
case mpNotReady : Form1->Label2->Caption="Not ready"; break;
case mpStopped : Form1->Label2->Caption="Stopped "; break;
case mpPlaying : Form1->Label2->Caption="Playing "; break;
______________________________________________________________________
©2004 Jerzy Kluczewski
C++ Builder. Programowanie obiektowe. Ćwiczenie 5. 9
______________________________________________________________________
case mpRecording : Form1->Label2->Caption="Recording"; break;
case mpSeeking : Form1->Label2->Caption="Seeking "; break;
case mpPaused : Form1->Label2->Caption="Paused "; break;
case mpOpen : Form1->Label2->Caption="Open "; break;
default : Form1->Label2->Caption="undefined";
}
if (Form1->MediaPlayer1->Wait) Form1->Label2->Caption=+" WAIT";
}
Programowanie metody FormCreate
Zaprojektujemy teraz metodę, która będzie uruchamiana podczas pierwszego otwierania
formularza, czyli startu naszej aplikacji.
Przejdz do formularza Form1 (klawisz F12).
Wybierz w oknie Object Inspector  Form1 i kliknij dwa razy na zdarzenie
 OnCreate
Po wybraniu zdarzenia OnCreate w oknie edycji kodu C++ metody zwiÄ…zanej
z wybranym zdarzeniem wpisujemy następujący kod:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
MediaPlayer1->Notify=true;
}
Programowanie metod MediaPlayer1  przyciski  MediaPlayer
void __fastcall TForm1::MediaPlayer1Click(TObject *Sender,
TMPBtnType Button, bool &DoDefault)
{
DispMode();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MediaPlayer1Notify(TObject *Sender)
{
DispMode();
}
©2004 Jerzy Kluczewski
10 C++ Builder. Programowanie obiektowe. Ćwiczenie 5.
______________________________________________________________________
Programowanie metody Button2Click  przycisk  Kolor
Po wybraniu zdarzenia OnClick w oknie edycji kodu C++ metody zwiÄ…zanej
z wybranym zdarzeniem wpisujemy następujący kod:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if (ColorDialog1->Execute())
{
Shape1->Brush->Color=ColorDialog1->Color;
Image1->Canvas->Pen->Color = ColorDialog1->Color;
}
}
Wypróbuj działanie projektu (F9)
______________________________________________________________________
©2004 Jerzy Kluczewski
C++ Builder. Programowanie obiektowe. Ćwiczenie 5. 11
______________________________________________________________________
Programowanie metody SpeedButton1Click  przycisk  GRAJ
Po wybraniu zdarzenia OnClick w oknie edycji kodu C++ metody zwiÄ…zanej
z wybranym zdarzeniem (SpeedButton1Click) wpisujemy następujący kod:
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
if (ListBox1->ItemIndex>-1)
{
/* graj wybrane pliki */
MediaPlayer1->FileName=ListBox1->Items->Strings[ListBox1->ItemIndex];
MediaPlayer1->Open();
MediaPlayer1->Play();
DispMode();
};
}
Programowanie metody SpeedButton2Click  przycisk  STOP
Po wybraniu zdarzenia OnClick w oknie edycji kodu C++ metody zwiÄ…zanej
z wybranym zdarzeniem (SpeedButton2Click) wpisujemy następujący kod:
void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
if (ListBox1->ItemIndex>-1)
{
MediaPlayer1->Stop();
DispMode();
};
}
V. Ukrywanie obiektu
Ukrycie obiektu  MediaPlayer1
Zaznacz obiekt  MediaPlayer1 i przejdz do okna Object Inspector
We właściwości Visible ustaw false
©2004 Jerzy Kluczewski
12 C++ Builder. Programowanie obiektowe. Ćwiczenie 5.
______________________________________________________________________
VI. Podsumowanie
Nasz projekt zawiera następujące obiekty:
Przetestujemy teraz działanie aplikacji:
______________________________________________________________________
©2004 Jerzy Kluczewski


Wyszukiwarka

Podobne podstrony:
borland cpp builder cw1
borland cpp builder cw10
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