Delphi - Program PIANINO

0

Witam. Mam taki problem: chciałem stworzyć w Delphi 7 program który, byłby pewnego rodzaju symulatorem pianina. Nie wiem jednak jak przypisać do przycisku takie akcje: Gdy naciskamy przycisk (klikamy w niego) to zaczyna odtwarzać się dźwięk, a gdy go puścimy to dźwięk się zatrzymuje. Czy ktoś mógłby mi pomóc? Myślałem żeby wykorzystać komponent TMediaPlayer, ale nie wiem których Events użyć, i co dokładnie wpisać do kodu.
Proszę o porady.

P.S. docelowo chciałbym żeby była możliwość uruchamiania przycisków za pomocą klawiatury - np wciskam klawisz 'z' i odpowiedni przycisk wirtualnego pianina także się 'wciska', puszczam klawisz 'z' i automatycznie odpowiedni przycisk wirtualnego pianina się 'wyłącza'.

0

Wciśkanie i zwalnianie klawiszy to banał, ustawiasz dla formatki KeyPreview na True i resztę załatwia już taki kod:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = Ord('Z') then
    Caption := 'Z wciśnięte';
end;
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = Ord('Z') then
    Caption := 'Z zwolnione';
end;

Co do odtwarzania dziwięku nie polecał bym MediaPlayera, bo to ubogi komponent, poza tym na przykład ja u siebie
pod XP mam coś namieszane ze sterownikami MCI i on mi nie odtworzy nic poza wave'm. Bardziej uniwersalna jest i
prosta w obsłudze oraz o dużych możliwościach - biblioteka bass.dll. Zobacz sobie na kod źródłowy programu, który
napisałem kilka dni temu dla w sumie dla siebie by dopracować obslugę bass.dll wkompilowanej do zasobów i także
dla jakiegoś <cenzura> którego post zostal usunięty z Newbie, napisalem do niego na PW, ale nawet nie odpisał. W
każdym razie link jest aktywny i nie wygaśnie. Zainteresuj się też kodem modułu a_bass_lib_resource.pas, bo
poza wkompilowaniem bass.dll w zasoby, polecam rownież próbki dźwiękowe pianina umieścić w zasobach. Da się
rownież z tego co się orientuje generować dźwięki przy pomocy samej biblioteki, ale tym się nie bawiłem. Zawsze
po więcej informacji możesz zajrzeć do dokumentacji oraz przykładów na: http://uk.un4seen.com/files/bass24.zip
Jest również forum z supportem. Co do pokazania pianina to już Twoja inwencja, można narysować klawisze - na
przykład na kilku komponentach Image, ktorych wygląd można zmieniać w zdarzeniach OnKeyDown/Up dla Twojej
formatki chociażby. Generalnie polecam wszystko trzymać w zasobach i z nich używać. Całośc później można, na
przykład spakowac UPX'em i wyjdzie z tego zgrabny pojedynczy exek. A inicjowanie bass.dll, zwykle się uda i to
na każdym komputerze wyposażonym w kartę dźwiękową zainstalowaną w systemie, nie to co z MediaPlayerem.
EDIT: Zapomniałem. Mój kod na:: http://www.mediafire.com/file/ygqw45yq7whelgt/mouse_buttons_sound.rar

0

Dzięki za wskazówki :)

0

Sorry z roztargnienia nie podałem linka, a może pytający obserwuje temat to przeczyta.
kod na:: http://www.mediafire.com/file/ygqw45yq7whelgt/mouse_buttons_sound.rar

1 użytkowników online, w tym zalogowanych: 0, gości: 1