borland cpp builder cw5

background image

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

©2004 Jerzy Kluczewski










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














background image

2

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

______________________________________________________________________

______________________________________________________________________

©2004 Jerzy Kluczewski

I.

Wstęp

Wykonaj aplikację w języku Borland C++, która będzie służyła do odtwarzania

plików dźwię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.

Przejdź do zakładki „Linker
Wyłącz opcję „Use dynamic RTL”.

Przejdź do zakładki „Packeges
Wyłącz opcję „Build with runtime packages”.

background image

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

©2004 Jerzy Kluczewski


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


background image

4

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

______________________________________________________________________

______________________________________________________________________

©2004 Jerzy Kluczewski


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:


background image

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

©2004 Jerzy Kluczewski


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.



background image

6

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

______________________________________________________________________

______________________________________________________________________

©2004 Jerzy Kluczewski


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);

background image

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

©2004 Jerzy Kluczewski

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 <vcl.h>
następujące linie (dyrektywy są oznaczone kolorem zielonym):

#include <dir.h>
#include <dos.h>
#include <string.h>
#include <time.h>


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.


background image

8

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

______________________________________________________________________

______________________________________________________________________

©2004 Jerzy Kluczewski


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<ItemCount; 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;

background image

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

©2004 Jerzy Kluczewski

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.

Przejdź do formularza Form1 (klawisz F12).


Wybierz w oknie Object InspectorForm1” 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();

}

background image

10

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

______________________________________________________________________

______________________________________________________________________

©2004 Jerzy Kluczewski

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)







background image

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

©2004 Jerzy Kluczewski

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 przejdź do okna Object Inspector

We właściwości Visible ustaw false


background image

12

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

______________________________________________________________________

______________________________________________________________________

©2004 Jerzy Kluczewski



VI.

Podsumowanie

Nasz projekt zawiera następujące obiekty:


Przetestujemy teraz działanie aplikacji:




Wyszukiwarka

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

więcej podobnych podstron