ROZDZIAŁ 7





Do tej pory zajmowaliśmy się przede wszystkim funkcjami Object Pascala. Tym razem poznamy funkcje jakie oferuje nam Delphi.
Na początek zajmijmy się Inspektorem Obiektów. Tak to co widzicie po lewej stronie to Inspektor Obiektów. Tutaj właśnie mamy możliwość zarządzania komponentami; to tutaj znajdują się opcje dzięki którym zmienimy właściwości komponentu. Opcje Inspektora Obiektów zostały przedstawione w tabeli poniżej:
Active Control Z listy możesz wybrać komponent który będzie aktywny zaraz po uruchominiu programu. Np.: chcesz, aby zaraz po uruchomieniu programu aktywne było pole edycyjne - wybierasz z menu komponent np. Memo.
AutoScroll Jeżeli właściwość ta ma wartość True to na formularzu pojawią się paski przewijania w przypadku gdy formularz jest za mały, aby pomieścić wsztkie komponenty. Z właściwością tą związane są też inne: HorzScrollBar i VertScrollBar. Określają one właściwość pionowego i poziomego paska przewijania.
Border Icons Określa które z systemowych przycisków ma być widoczna na tytułowym pasku podczas działania programu.
Border Style Ustala się typ ramki jaka będzie używana podczas pracy programu. bsDialog i bsNone oznaczają, że nie będzie możliwa zmiana rozmiarów okna. Przy wybraniu bsToolWindow formularz będzie zawsze na wierzchu i będzie można z niego korzystać nie wywołując go.
Constrains Określa max. i min. wymiary formularza.
DefaultMonitor Właściwość ta określa na którym monitorze ma być wyświetlany formularz.
DockSite Właściwość ta określa czy w formularzu można dokować (umiejscawiać w innym miejscu) komponenty.
Font Określa czcionkę jaka będzie używana przez formularz.
Icon Możesz określić ikonę jaka będzie używana przez program (wyświetlnana na pasku stanu).
KeyPreview Gdy ta właściwość ustawiona jest na True, będzie generowane zdarzenie formularza OnKeyPress i OnKeyDown.
Position Właściwość ta określa położenie formularza po uruchomieniu. poDesigned oznacza, że formularz będzie tak ustawiony jak podczas jego projektowania.
poDefault daje możliwość ustawienia okna programu według algorytmu Windows. Nowe okno jest ustawione nieco na prawo i nieco niżej od poprzedniego. poScreenCenter oznacz, iż program ustawiony będzie na samym środku ekranu.
WidowsState Określa czy okno programu zaraz po uruchomieniu ma być zmaksymilizowane, zminimalizowane czy normalne.
Visible Określa czy formularz jest widoczny True czy też nie: False


ROZDZIAŁ 8

W tym rozdziale zajmiemy się sylwetką komponentu MediaPlayer.
Zaczniemy od komponentu MediaPlayer. Komponent ten znajduje się na palecie System. Służy on do odtwarzania muzyki w formacie *.mid i *.wav oraz filmów w formacie *.avi. Gdy umieścicie ten komponent na formularzu zobaczycie kilka przycisków służących do sterowania. Niekiedy zajdzie potrzeba ukrycia komponentu MediaPlayer. Wtedy należy wartości Visible przypisać wartość False. Zróbmy teraz programik, który będzie odrywał dźwięk po naciśnięciu przycisku:
1. Umieść na formularzu komponent MediaPlayer i zmień jego właściwość na False.
2. Umieść na formularzu przycisk i w procedurze OnClick wpisz następujący tekst: procedure TForm1.GrajClick(Sender: TObject);
begin

MediaPlayer1.FileName:='muzyczka.wav'; //przypisanie komponentowi nazwy utworu
MediaPlayer1.Open; //otwarcie pliku
MediaPlayer1.Wait:=True; //otwarcie pliku w sposób synchroniczny
MediaPlayer1.Play; //odtwarzanie pliku muzycznego
MediaPlayer1.FileName:='muzyczka1.wav';
MediaPlayer1.Open;
MediaPlayer1.Wait:=True;
MediaPlayer1.Play;
end;
Objaśnienie: Zwróć uwagę na przypisanie wartości Wait komponentowi. Jest to niezbędne gdy chcemy odtwarzać jeden utwór za drugim. Gdyby wartość Wait miała wartość False to odtwarzanie kolejnego utworu nastąpiłoby zaraz po zakończeniu odtwarzania pierwszego (przerwa pomiędzy utworami trwałaby kilka milisekund). W przypadku muzyki z rozszerzeniem *.mid kod byłby taki sam z tymże nazwy utworów byłyby inne.
Niekiedy zachodzi konieczność odtworzenia pliku z rozszerzeniem *.wav w tle grającej muzyki.
1. W powyższym kodzie zmień właściwość FileName na muzykę z rozszerzeniem *.mid.
2. Zaznacz przycisk pojedynczym kliknięciem; w Inspektorze Obiektów kliknij na zakładkę Events
3. Odszukaj pole OnMouseMove i kliknij na nie. Najedź kursorem obok tego pola - kursor powinien zmienić się na tekstowy. Kliknij dwukrotnie.
4. Treść procedury OnMouseOver uzupełnij następująco: procedure TForm1.GrajMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
PlaySound('C:\Moje dokumenty\click.wav',0,SND_FILENAME);
end;
5. Do listy modułów (uses) dodaj słowo MmSystem.

Uruchom program.
Zwróć uwagę na parametr SND_FILENAME. Używaj tego parametru gdy chcesz odtworzyć plik znajdujący się na dysku. Możliwe jest użycie innego parametru np. PlaySound('MailBeep',0,SND_ALIAS);
Powoduje to odtworzenie pliku MailBeep o ile takowy jest przypisany w systemie Windows.
Zajmiemy się teraz odtwarzaniem filmów *.avi. Napiszemy program, który ma za zadanie wyświetlać filmy właśnie z rozszerzeniem *.avi.
1. Umieść na formularzu komponent MediaPlayer i zmień jego nazwę na Player
2. Umieść na formularzu komponent Panel (na palecie Standart), usuń tekst z właściwości Caption.
3. Umieść na formularzu przycisk Button
4. Umieść na formularzu komponent OpenDialog (na palecie Dialogs), zmień jego nazwę na OpenDialog.
5. Procedure OnClick przycisku uzupełnij następuąco:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if OpenDialog.Execute then //wywołanie okna "Otwórz"
Player.FileName:=OpenDialog.FileName;
PLayer.Open;
Player.Display:=Panel1; //Panel1 będzie wyświetlaczem filmu
Player.DisplayRect:=Panel1.ClientRect; //Dostosowanie rozmiarów filmu do rozmiaru Panelu
end;
Objaśnienie: Na początku następuje wyświetlenie okna dialogowego "Otwórz". Później nazwa jaką wybrałem zostaje przydzielona komponentowi Player, następuje otwarcie pliku (zauważ, że przyciski komponentu MediaPlayer stały się aktywne). Jeżeli chcesz obejrzeć film na panelu to musisz dokonać przypisania: Player.Display:=Panel1; Wtedy jednak film zostanie obcięty do rozmiarów panelu. Żeby temu zapobiec musisz dokonać przypisania: Player.DisplayRect:=Panel1.ClientRect Dokończenie tematu komponentu MediaPlayer w kolejnej części