FREEPASCAL Zongora, hogyan oldjam meg?
Addig eljutottam,hogy minden egyes lenyomott billentyűre más más hangot adjon,de a feladat az,hogy ha pl. a helyett A-t nyomok,akkor hosszan szóljon.Tudtok segíteni? Itt a kódom:
program zongora;
uses crt;
var r:word;
t:word;
ch:char;
BEGIN
r:=0;
repeat
if keypressed then begin
ch:=readkey;
case ch of
'a': r:=278;
's': r:=293;
'd': r:=330;
'f': r:=371;
'g': r:=418;
'h': r:=440;
'j': r:=495;
'k': r:=557;
'l': r:=600;
'p': r:=0;
end;
sound(r);
delay(350);
nosound;
end;
until ch='o';
readln;
end.
Köszi
Szia.
Vezess még be egy változót ami a hang hosszát határozza meg. Aztán a Case sekcióban (vagy egy IF-fel, ha az jobban megfelel) ezt a változót "felül birálod", valahogy igy :
.
.
HangHossz:=350;
.
.
Case ch of
'a':r:=278;
.
.
'A':r:=278;
end;
if ('A'<=ch) and (ch<='Z' ) then HangHossz:=700;
sound (r);
Delay (HangHossz);
.
.
Sok sikert.
Üdv.
program zongora;
uses Crt;
var
gombok: set of Char = ['A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', 'P'];
r, duration: Word;
ch: Char;
begin
r := 0;
repeat
if KeyPressed then
begin
duration := 350;
ch := ReadKey;
if UpCase(ch) in gombok then
begin
case ch of
'a', 'A': r := 278;
's', 'S': r := 293;
'd', 'D': r := 330;
'f', 'F': r := 371;
'g', 'G': r := 418;
'h', 'H': r := 440;
'j', 'J': r := 495;
'k', 'K': r := 557;
'l', 'L': r := 600;
'p', 'P': r := 0;
end; // case
Sound(r);
if ch in gombok then duration := duration * 2;
Delay(duration);
NoSound;
end; // if Keypressed
end; // if UpCase
until ch = 'o';
end.
Off:
Megszületett ma délelőtt az ötödik unokám, nem tudjátok elvenni a kedvem semmivel, még ha le is pontoztok a megoldásért. :)
FreePascal-lal Windwos-ban futó programokat is lehet készíteni. Úgyhogy azt is meg lehet oldani, hogy olyan hosszan szóljon a hang, amilyen hosszan tartják a billentyűt.
Létre hozunk egy Windows-os ablakot, és a WM_KEYDOWN és a WM_KEYUP eseményébe beírjuk a Sound és NoSound parancsokat.
Hálás vagyok a segítségeketkért,mindenkinek.Igen,csak most ismerkedem a Pascallal csak...egyelőre ez is elég,később mehet a windowsos is.:)
Gratulálok az unokádhoz!
Ha bármi gondod van a Pascal-lal, Lazarus-szal, Delphi-vel keress meg akár privátban is, szívesen segítek. Április közepétől kb. a végéig nem leszek elérhető, mert költözünk és ahová megyünk ott még nem tudom mennyi alatt kötik be a netet.
Off: A gratulációt köszönöm, igaz csak az unokám anyja az én érdemem :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!