{ Hier sehen sie wie sie eine eigene Resource
erstellen können}
1.
Du erstellst eine Textdatei mit der Endung RC.
In dieser schreibst Du eine (ggf. auch mehrere) Zeile, die folgenden Aufbau hat:
NameDerResource TypDerResource PfadZuDerDateiDieDieResourceEnthält
2.
NameDerResource meint die Bezeichnung, unter der Du die Resource später im Programm ansprechen kannst.
TypDerResource bezeichnet einen vordefinierten Resourcentyp, z.B. WAVE oder BITMAP.
PfadZuDerDateiDieDieResourceEnthält gibt den Namen der Resourcendatei an, und den Pfad, der auch relativ zur Lage der RC Datei angegeben werden kann (bei Leerzeichen im Pfad in "" einschliessen)
Beispiel:
bild BITMAP Graphics\Photo.bmp
//es soll eine Resource vom Typ BITMAP eingebunden werden, die im Programm mit der Bezeichnung bild angesprochen werden kann. Hierzu soll die Datei Photo.bmp hinzugefügt werden, die sich im Verzeichnis Graphics befindet, das sich im gleichen Verzeichnis befindet, wie die RC Datei.
3.
Du könntest jetzt also eine Datei erstellen, als Beispiel nenne ich sie SOUNDFILE.RC. Da hinein kommt eine Zeile:
MySound WAVE MySound.wav
4.
Ziehe nun die abgespeicherte rc Datei in die Datei brcc32/brc32.
Jetzt sollte der Resourcencompiler eine SOUNDFILE.RES im gleichen Verzeichnis angelegt haben, in der sich auch die SOUNDFILE.RC befindet.
Und jetzt folgt nur noch ein Ausschnitt aus der
Unit in der die Datei abgespielt werden soll (wichtig: unter uses die
unit mmsystem mit einbinden (fürs PlaySound)):
implementation
uses mmsystem;
{$R *.DFM}
{$R SOUNDFILE.RES} // WICHTIG !!!
procedure TForm1.Button1Click(Sender: TObject);
begin
// 'MySound' = Name der Resource (erster Wert in der RC Datei)
// 0 =
Handle zur Datei aus der die Resource geladen werden
// soll. Wird hier nicht gebraucht, da diese EXE auch
// die Resource enthält. Man kann auch hInstance angeben
// SND_RESOURCE = Der erste Parameter gibt den Namen einer Resource an
// SND_ASYNC = Die Funktion startet das Abspielen, und kehrt dann
// sofort zurück.
// Ansonsten würde das Ende des Abspielens abgewartet,
// und das Programm würde an dieser Stelle stehenbleiben
PlaySound('MySound',0,SND_RESOURCE or SND_ASYNC);
end;
// Abspielen stoppen
procedure TForm1.Button2Click(Sender: TObject);
begin
// nil = Das Abspielen der aktuellen Wavedatei wird beendet
PlaySound(nil,0,0);
end;
{Jetzt kann man mit Button1 die Wavedatei aus der Resource abspielen,
und das Abspielen mit Button2 stoppen.}