Hi Minz,
Wenn Du TSoundFlag deklarierst, wird z.B. SND_LOOP vom Compiler intern als 2 betrachtet, und hat mit dem SND_LOOP aus mmsystem nix zu tun (ist dort als 8 definiert).
Warum gehst Du den umständlichen Weg über eine neue Typdefinition überhaupt, die Konstanten SND_ASYNC usw. sind in mmsystem doch schon definiert.
Du wirst um If-Abfragen nicht herumkommen, wenn Du Dir Dein flag zusammenbastelst. (Ist zumindest
IMHO nicht umständlicher als Dein Weg.)
Beispiel:
flag := 0;
If async Then flag := flag Or SND_ASYNC;
If loop Then flag := flag Or SND_LOOP;
...
sndPlaySound('xyz.wav',flag);
Funktioniert wohlgemerkt nur _ohne_ Deine Typdefinition.
Gruss, teebee