![]() |
Sound ausgeben+button drücken
hallo,
ich hab mal wieder ein problem: ich gebe mit hilfe der port.dll einen sound aus und währendessen soll er aber gleichzeitig auch einen button abfragen, ob der ton gehört wurde. das programm soll als billiger hörtester fungieren und ist folgendermaßen aufgebaut: ich habe eine äußere schleife, in der die frequenz hochgezählt wird und eine schleife darin, wo immer die lautsärke von 0 hochgefahren wird. der nutzer soll dann drücken wenn er den sound gehört hat - verstanden? beispiel: frequenz steht auf 440hz und auf der lautstärke '1' --> sound wird ausgegeben und der user kann ihn nicht hören (zu leise). nun wird die lautstärke erhöht: frequenz steht auf 440hz und auf der lautstärke '101' --> sound wird ausgegeben und der user kann ihn nicht hören (zu leise). usw. bis die lautstärke meinetwegen 500 hat und dann soll der user den button gedrückt hat. so das funktioniert leider nicht, weil ich nicht innerhalb der schleife buttons abfragen kann. ich hab es probiert mit einem globalen hook, aber auch der 'kommt' auch nciht in die schleife. dann habe ich einen tipp von schubi bekommen, dass ich
Delphi-Quellcode:
benutzen soll, aber wenn ich das benutzte gibt er den sound nicht mehr aus - aber ich kann die buttons drücken bzw. die hook-signale verwenden :twisted:
application.processmessages;
programm-code: erklärung: t_fq <- Frequenz t_db <- pseudo db also die lautstärke soundausgeben_kurz(...) <- gibt den sound aus, ist egal was da drin steht(funktioniert auf jedenfall)
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var s:string; begin while t_fq <= fqmax do begin t_db:=1; //gehort:=false; for T_i :=1 to dbmax do begin //soundausgeben_kurz(t_fq,t_db); //application.processmessages; //showmessage(inttostr(t_db)); t_db:=t_db+100; form1.l1.caption := inttostr(t_db); if timer1.Tag = 1 then begin raster.RowCount:= raster.RowCount+1; raster.cells[0,stelle]:=inttostr(t_db); raster.cells[1,stelle]:=inttostr(t_fq); raster.cells[2,stelle]:='ja'; t_fq:=t_fq+fq_step; inc(stelle); timer1.Tag := 0; end; {if Buchstabe_gedruckt='J' then begin raster.RowCount:= raster.RowCount+1; raster.cells[0,t_i]:=inttostr(t_db); raster.cells[1,t_i]:=inttostr(t_fq); raster.cells[2,t_i]:='ja'; t_fq:=t_fq+fq_step; Buchstabe_gedruckt:='X'; end; } application.processmessages; //application.HandleMessage; end; //for ende db ende end; // fq while ende timer1.Enabled := false; end; |
Re: Sound ausgeben+button drücken
Liste der Anhänge anzeigen (Anzahl: 1)
hier noch das programm:
euch muss nur der timer1 und die zwei buttons mit der caption 'Hörtest' & 'Jaaa' interessieren. ich hoffe, ihr könnt mir helfen :roll: :mrgreen: :mrgreen: :mrgreen: :mrgreen: mfg korn117 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz