Autor Beitrag
NiLS-Da-BuBi
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 10.11.02 00:08 
Ich habe eine ToolBar ... so nun möchte ich jedesmal wenn der Mauszeiger über einer Schaltfläche ist eine Wave Datei abegespielt haben... nun ich finde aber keine Ereignisshandlung die meinen Bedürfnissen entspricht... wenn ich meinen Code in OnMouseMove schreibe hört sich das an wie ein Geigerzähler... der Sound soll aber nur einmal abgespielt werden - bis er die nächste schaltfläche überfliegt... irgendeine Idee dazu? Das ist mein Code für die Ereignisshandlung:

PlaySound(PChar(ExtractFilePath(ParamStr(0))+'\audio\move.wav'), 0, SND_FILENAME + SND_ASYNC);
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: So 10.11.02 12:46 
Es gibt bei toolbuttons doch das Ereignis OnMouseOver !!! da das einfach reinpacken und feddich !!!

_________________
In the beginning was the word.
And the word was content-type: text/plain.
NiLS-Da-BuBi Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 12.11.02 17:21 
Ich dachte ich hätte es erwähnt... ich habe dieses Ereigniss ja dafür benutzt Problem: geigerzähler effekt.

Als Sound hab ich ein simples klick - das das hovern der schaltfläche signalisiert... nun wenn die maus stillsteht ok aber bei jedem kleinen pixel bewegung wird der sound einmal abgespielt - Geigerzählereffekt... Wie kann ich also nun definieren das bei einem OnOver der sound nur 1mal abgespielt wird und erst danach wieder wenn die Maus sich nochmal über die schaltfläche bewegt... villeicht ist "PlaySound" ja ein falscher ansatz für mein Problem.
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: Di 12.11.02 18:12 
gibst denn nicht sowas wie ONMouseIn ??? das wird ausgelößt, wenn die maus das objekt entert !!!!

_________________
In the beginning was the word.
And the word was content-type: text/plain.
NiLS-Da-BuBi Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mi 13.11.02 15:02 
Nö sonst hätt ich die Frage nicht gestellt ;)
DataCool
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 112



BeitragVerfasst: Mi 13.11.02 16:26 
Hi,

Dein Problem ist, das das Ereignis OnMouseMove mehrmals auftritt.
Die Lösung ist recht simpel :

1. Du deklariest eine Variable aktMouseBtn vom Typ TSpeedButton
2. Du implementierst für Deine Toolbar auch das Ereignis OnMouseMove, in diesem Ereignis folgender Code :
aktMouseBtn := Nil;
3. Im OnMouseMove-Ereignis der Speedbuttons folgender Code :
if Sender <> aktMouseBtn then begin
aktMouseBtn := TSpeedButton(Sender);
Playsound...
end;