Hintergrundmusik
-
änder:
mciSendString("play MIDI repeat", NULL, 0, 0);
gruß Micha
-
ttester schrieb:
Und jetzt nur noch das es immer wiederholt wird
Für einen Blick in die Hilfe hat es wieder nicht gereicht?
Ich hoffe ernsthaft, dass dir deine Fragen hier wenigstens ein bischen peinlich sind.
-
Jansen schrieb:
ttester schrieb:
Und jetzt nur noch das es immer wiederholt wird
Für einen Blick in die Hilfe hat es wieder nicht gereicht?
Ich hoffe ernsthaft, dass dir deine Fragen hier wenigstens ein bischen peinlich sind.
Ist wohl Richtig, aber das steht in der Hilfe zu Windows SDK und die ist
in Englisch und vorallem nicht so gut Übersichtlich wie die Borland-Hilfe.
Wenn man mit der WindowsSDK-Hilfe nicht klar kommt, kann ich das Verstehen
und liefere lieber ne Lösung.gruß Micha
-
Das war ausdrücklich an ttester gerichtet.
Aber weil du dich angesprochen fühlst: Deine Kritik an der SDK-Hilfe kann ich nachvollziehen, genau aus diesem Grund habe ich selbst auch ein konkretes Code-Beispiel gegeben, entgegen meinen üblichen Gewohnheiten.
Aber hast du wirklich den Eindruck, das ttester daraufhin a) überhaupt mal in die Hilfe gesehen und es nur nicht verstanden hat, und dass er b) auch nur andeutungsweise versucht hat, die Code-Beispiele zu verstehen, anstatt sie einfach abzukopieren?
-
Hmmm,
ich glaub du hast Recht Jansen, mal Abgesehen von der Hilfe findet man
selbst im Forum viele Ansätze und über Google wird man auch fündig.
Wenn ich mir mal diesen Thread genauer Betrachte dann sieht das wirklich
aus wie: "Schreib du Lösung, ich mach C.a.P."Ich fühlte mich nicht Angesprochen, ich wollte ttester nur in Schutz nehmen,
da der Stoff ja nicht einfach ist, aber wie ich das jetzt sehe, wird er für
ttester auch nie einfach werdengruß Micha
-
Helium schrieb:
Für was steht '\b'? Genau für BELL (normalerweise ein Pipen des in den PC eingebauten Lautsprechers).
Guck dir mal KlausB's Antwort an!!!Kommentar: 3 Leute, die in einem String keinen Dateinamen ersetzen können. Schon peinlich...
-
Ich hab vor 4 Tagen angefangen mit C++, tut mir leid das ich noch soooo peinliche Fragen stelle
ThX promicha,
wenigsten ein netter User
-
ttester schrieb:
Ich hab vor 4 Tagen angefangen mit C++, tut mir leid das ich noch soooo peinliche Fragen stelle
Das hat dir auch leid zu tun, denn so wie du fängt man nicht mit C++ an! Beginnen tust du mit Konsolenanwendungen, damit du überhaupt erstmal verstehst, was in den BCB-GUI-Anwendungen abgeht. Und dein Versuch war wirklich peinlich, denn das hätte sicher jeder Newbie, der einigermaßen logisch denken kann, hinbekommen.
-
Hmm, beim Builder 4 ging das, aber jetzt beim 6 startet sie wieder nicht
Was hat die 4 was der 6 net hat das das beim 6er net geht?
-
probiers mal mit _beep(1000,100); -.- klingt zwar scheisse aber es funktioniert sicher vorher musst aber die windows.h einbinden, soviel ich noch weiß
-
ttester schrieb:
Hmm, beim Builder 4 ging das, aber jetzt beim 6 startet sie wieder nicht
Wer oder was ist "sie"?
-
Hmm das is doch doch kein Midi aufruf oder?
@Fritz
Ich hack doch auch nicht auf deiner HP rum, also hör bitte auf hier rumzuprotzen.
-
mit "sie" ist die Midi gemeint
-
Ich protze nicht rum, sondern sage die Wahrheit. Und um meine HP geht es hier nicht. Meinetwegen mach einen Thread in nem anderen Forum auf, in dem du über meine HP herziehst. Hast du im BCB6 denn auch mmsystem.h inkludiert?
-
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <mmsystem.h> #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { mciSendString("open \\test.mid type sequencer alias MIDI", NULL, 0, 0); mciSendString("play MIDI", NULL, 0, 0); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { mciSendString("open \\test.mid type sequencer alias MIDI", NULL, 0, 0); mciSendString("play MIDI", NULL, 0, 0); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormShow(TObject *Sender) { mciSendString("open \\test.mid type sequencer alias MIDI", NULL, 0, 0); mciSendString("play MIDI", NULL, 0, 0); } //---------------------------------------------------------------------------
Habs mal überall reinkopiert, das geht nirgends.
-
Mit \\test.mid verwendest du einen relativen Pfad. Das ist immer eine potentielle Fehlerquelle, deshalb ist grundsätzlich zu absoluten Pfadangaben zu raten.
Ansonsten: ich vermute, dass der von dir erwähnte BCB4 auf einem anderen Rechner läuft als der BCB6?
Hast du mal geprüft, ob der BCB6-Rechner überhaupt MIDI korrekt abspielt? Vielleicht ist ja nur der entsprechende Kanal der Windows-Lautstärkeregelung (Mixer) deaktiviert.
-
FormShow wird kurz nach TForm (Owner) aufgerufen,
somit startest du den Sequencer 2x mit dem gleichen Alias.
Das ist wie ein Tritt im Hintern für das MIDI-Gerät.
MCI Error.gruß Micha
-
ttester schrieb:
Hä? Was das den für ne seite ^^
wollte doch nur wissen wie ich ne Midi als Background laufen lassen kann.Zieh dir einfach folgende Borland C Builder Datei von:
http://www.allegro.cc/files/4.0.2/allegro-4.0.2-bcc32.zipbzw.
http://www.allegro.cc/files/index.html?&request=1078946933&Dann einfach einbinden und los gehts
Hier ein kleines Tutorial:
http://www.grandgent.com/gfoot/vivace/vivace.txt
-
promicha schrieb:
somit startest du den Sequencer 2x mit dem gleichen Alias.
Das ist wie ein Tritt im Hintern für das MIDI-Gerät.
MCI Error.Kann ich nicht nachvollziehen. Sowohl bei
mciSendString("open c:\\windows\\media\\town.mid type sequencer alias MIDI", NULL, 0, 0); mciSendString("play MIDI", NULL, 0, 0); mciSendString("open c:\\windows\\media\\town.mid type sequencer alias MIDI", NULL, 0, 0); mciSendString("play MIDI", NULL, 0, 0);
als auch bei
mciSendString("open c:\\windows\\media\\town.mid type sequencer alias MIDI", NULL, 0, 0); mciSendString("play MIDI", NULL, 0, 0); mciSendString("play MIDI", NULL, 0, 0);
läuft der Ton problemlos weiter.
Ganz davon abgesehen, dass sich ein MCI Error üblicherweiser mit einer entsprechenden Fehlermeldung ... ähh ... meldet.
Und die hätte ttester uns dann ja sicher nicht vorenthalten. Oder?
-
Jansen schrieb:
Ganz davon abgesehen, dass sich ein MCI Error üblicherweiser mit einer entsprechenden Fehlermeldung ... ähh ... meldet.
Und die hätte ttester uns dann ja sicher nicht vorenthalten. Oder?Nein, mciSendString giebt eine Fehlernummer wieder, ist es 0, ist alles OK.
Andernfalls kann man sich mit mciGetErrorString die Fehlermeldung in Klartext
hollen. Das MCI-Device ist bereits geöffnet und giebt daher eine Fehlernummer
wieder und der Befehl wurde nicht ausgeführt.Probiere es doch mal so:
int a = mciSendString("open c:\\windows\\media\\start.mid type sequencer alias MIDI", NULL, 0, 0); int b = mciSendString("play MIDI", NULL, 0, 0); int c = mciSendString("open c:\\windows\\media\\start.mid type sequencer alias MIDI", NULL, 0, 0); int d = mciSendString("play MIDI", NULL, 0, 0); ShowMessage( IntToStr(a) + ":" + IntToStr(b) + ":" + IntToStr(c) + ":" + IntToStr(d) );
Dann wirst du die Werte sehen.
gruß Micha
*EDIT*
ich glaub ich setzte mal die mciGetErrorString Funktion als Code direkt mit bei,
damit mal unsere Code ausgaben hier Komplet werden:LPTSTR fehler; unsigned int laenge = 128; mciGetErrorString(DWORD(c),fehler,laenge); //Statt c, halt a,b,c,d je mci Befehl MessageBox(Form1->Handle,fehler,NULL,0);