Programm bringt mich zur Weißglut (Types)
Übersicht

Mr HoppBetreff: Programm bringt mich zur Weißglut (Types) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
Eigentlich bin ich ja kein Anfänger mehr, aber diese Types kriegen mich immer wieder klein, naja, es heist ja: "Das Leben dreht sich um Fragen und Antworten, auch wenn man weis, das man lange braucht um etwas zu verstehen, sollte man dennoch fragen". Sorry, kleiner Anflug von Poetie. Auf jeden Fall, ich verzweifle noch an den Types. Das programm ist noch nicht weit, und es kommt mir auch erst mal nur auf die Funktion "Laden" an. Zu dem Programm gehören noch 3 Dateien, ich denke aber, die braucht man nicht, für die Types. (Die eine ist eine Wav-Datei zum erzeugen des Sounds; die andere eine txt-Datei, in der die Daten für das laden drin stehen;Und noch eine Datei gibt an, wie viele Stimmen nd so das Lied hat) Code: [AUSKLAPPEN] Graphics 800, 600, 32, 1
SetBuffer BackBuffer() Global Keyboard = LoadSound("Instrumente\Keyboard.wav") LoopSound Keyboard Global Hintergrund = LoadImage("Bilder\Hintergrund.png") Global Cursor = LoadImage("Bilder\Cursor.png") Global Menue = LoadImage("Bilder\Menue.png") MaskImage Cursor, 0, 0, 255 Global Laut# = 0.625 Global note = 0 ;Global oktave = 0 Type TLied Field Stimme.TStimme Field Stimmanzahl Field aktuelle_s End Type Type TStimme Field XNote.TNote Field Noten_ges Field aktuelle_n End Type Type TNote Field Oktave Field Hoehe Field Laenge Field Besonderheiten Field Laut Field Note_x Field Note_y End Type Global Lied.TLied = New TLied Global Stimme.TStimme = New TStimme Global XNote.TNote = New TNote ;Global Note.TNote = New TNote Wiedergabe("Alle meine Entchen\") ;***************************************************************************************************** Function Laden(WgPfad$) i = 2 Info = ReadFile("Lieder\"+WgPfad$+"Info.txt") Stimmanzahl = ReadByte(Info) CloseFile(Info) ;------------------------------------------------------------- Lesen = ReadFile("Lieder\"+WgPfad$+"Stimme1.txt") Repeat Lied\Stimme.TStimme\XNote.TNote = Last TNote Lied\Stimme.TStimme\XNote.TNote = New TNote Lied\Stimme.TStimme\Noten_ges = Lied\Stimme.TStimme\Noten_ges + 1 Lied\Stimme.TStimme\aktuelle_n = Lied\Stimme.TStimme\aktuelle_n + 1 Lied\Stimme.TStimme\XNote.TNote\Oktave = ReadByte(Lesen) Lied\Stimme.TStimme\XNote.TNote\Hoehe = ReadByte(Lesen) Lied\Stimme.TStimme\XNote.TNote\Laenge = ReadByte(Lesen) Lied\Stimme.TStimme\XNote.TNote\Besonderheiten = ReadByte(Lesen) Lied\Stimme.TStimme\XNote.TNote\Laut = ReadByte(Lesen) Lied\Stimme.TStimme\XNote.TNote\Note_x = ReadByte(Lesen) Lied\Stimme.TStimme\XNote.TNote\Note_y = ReadByte(Lesen) Until KeyHit(1) CloseFile(Lesen) ;-------------------------------------------------------------- For i = 2 To 6 If Stimmanzahl <= i Then Lied\Stimme.TStimme = Last TStimme Lied\Stimme.TStimme = New TStimme Lied\Stimmanzahl = Lied\Stimmanzahl + 1 Lied\aktuelle_s = Lied\aktuelle_s + 1 Lesen = ReadFile("Lieder\"+WgPfad$+"Stimme"+i+".txt") Repeat Lied\Stimme.TStimme\XNote.TNote\Oktave = ReadByte(Lesen) Lied\Stimme.TStimme\XNote.TNote\Hoehe = ReadByte(Lesen) Lied\Stimme.TStimme\XNote.TNote\Laenge = ReadByte(Lesen) Lied\Stimme.TStimme\XNote.TNote\Besonderheiten = ReadByte(Lesen) Lied\Stimme.TStimme\XNote.TNote\Laut = ReadByte(Lesen) Lied\Stimme.TStimme\XNote.TNote\Note_x = ReadByte(Lesen) Lied\Stimme.TStimme\XNote.TNote\Note_y = ReadByte(Lesen) Until KeyHit(1) CloseFile(Lesen) EndIf Next End Function ;*************************************************************************************************** Function Auswaehlen() For ID = 1 To Stimme\aktuelle_n-1 Step 1 Lied\Stimme.TStimme\XNote.TNote = After Lied\Stimme.TStimme\XNote.TNote Next End Function ;***************************************************************************************************** Function Wiedergabe(WgPfad$) Laden(WgPfad$) Stimme1_k = PlaySound(Keyboard) ;Info = ReadFile("Lieder\"+WgPfad$+"Info.txt") ;Stimmen = ReadLine(Info) ;CloseFile(Info) End Function |
||
MegaTefyt |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja, 1. heißt es Poesi ![]() ![]() |
||
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also, mit dem Programm soll man Lieder komponieren können, wobei nach dem Laden die Types durhlaufen werden (Diese Funktion ist erstmal egal) und dabei befehle geben, wie hoch der Pitch und so weiter für den Grundton sein muss. Und (sorry, hab vergessen, das ihr s gar nich laufen lassen könnt) was nicht fnktioniert ist wie gesagt die Funktion "Laden", wo bei dem erstellen eines neuen Objekts (einer neuen Note) immer angezeigt wird, das das Objekt nich existiert. Ich dachte, ich hätte den fehler gefunden, am Anfang existiert es ja wirklich nicht, also habe ich den Last Befehl weggemacht (ein saudoofer Fehler) allerdings wurde mir dann auch das New angestrichen, und so weit bin ich jetz. Ich glaub, der Last Befehl steht inzwischen wieder da. | ||
![]() |
Alfadur |
![]() Antworten mit Zitat ![]() |
---|---|---|
cool ist immer zu wissen was der debugger darüber denkt... was sagt er denn!? | ||
A Cray is the only computer that runs an endless loop in less than four hours. |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Was? | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du sollst es im Debug Modus kompilieren, dann gibts ne gescheite Fehlermeldung. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ne, eben nich, nur während des Programm-Laufes "Object does not exist". Is das denn so schwer zu begreifen? | ||
![]() |
Ctuchik |
![]() Antworten mit Zitat ![]() |
---|---|---|
wenn du die dateien hochladen könntest wäre das ganze einfacher
im moment blick ich noch nicht so ganz durch ![]() EDIT: Was mir grad auffällt ist, dass deine beiden Repeat-Schleifen ein Code: [AUSKLAPPEN] Until KeyHit(1)
am Ende haben! Sollte das nicht ein Code: [AUSKLAPPEN] Until Eof(Lesen)
sein!?! EDIT2: Was ich auch nicht verstehe ist warum du Code: [AUSKLAPPEN] Lied\Stimme.TStimme\XNote.TNote = Last TNote
machst. Das wird doch danach bei New TNote quasi überschrieben! |
||
Zu den Nebenwirkungen gehören trockener Mund, Übelkeit, Erbrechen, Harnstau, schmerzhafter rektaler Juckreiz, Halluzinationen, Demenz, Psychose, Koma, Tod und Mundgeruch!
Magie eignet sich nicht für alle! Fraget euren Arzt oder Apotheker! |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Problem liegt wahrscheinlich einfach nur daran, dass du beim Initialisieren scheinbar nicht drüber nachdenkst, was du machst ...
Sprich du initiliasierst Lied aber nie Lied\Stimme, was du in deiner Funktion benutzen willst. Genau so wenig Lied\Stimme\XNote auf das du auch die ganze Zeit am Anfang von Laden zugreifst. PS: Der Debugger gibt auch Zeilen an bei Fehlern, sollte ich mich nicht irren. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Alfadur |
![]() Antworten mit Zitat ![]() |
---|---|---|
du irrst nicht. der debugger ist unser aller freund.
"Is das denn so schwer zu begreifen?" gut, nochmal ganz langsam für dich zum mitmeiseln. je nach ide die du benutzt kannst du bei compiler optionen irgendsowas wie "debug" anklicken. da erscheint dann ein häckchen oder sonstwas. dann isser eingeschaltet. dann startest du das programm und wenn dann der fehler kommt wird die entsprechende zeile durch ne rote, blaue, grüne oder andersgeartetet farbe hervorgehoben... dann weißte schonmal in welcher zeile der fehler ist. zusätzlich gibts dann noch irgendwo so tabs wo du die globalen variablen, konstanten etc anschauen kannst, und die funktionen die gerade am laufen sind werden auch angezeigt, inklusive aller variablen... da schauste dann mal nach, dort steht dann sicher irgendsowas wie stimme.Tstimme (null) oder sowas. dann weiße : aha, stimme existiert nicht, also sollte ich besser nicht drauf zu greifen... alles verstanden? oder ist es zu schwer zu begreifen?! solche "iuiuiui, fehlermeldung"-posts sind nämlich überflüssig wie ein kropf wenn man sich mal die debugger ausgaben anschaut... |
||
A Cray is the only computer that runs an endless loop in less than four hours. |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das
Code: [AUSKLAPPEN] Global Lied.TLied = New TLied Global Stimme.TStimme = New TStimme Global XNote.TNote = New TNote muss zu Code: [AUSKLAPPEN] Global Lied.TLied = New TLied Lied\Stimme = New TStimme Lied\Stimme\XNote = New TNote werden, denn in der Funktion greifst du auf diese zu, nur erzeugen tust du sie nie sondern erzeugst andere Variablen die nichts mit "Lied" zu tun haben. Das meinte ich. Ich nehme an, der Fehler tritt bei "Lied\Stimme.TStimme\XNote.TNote = Last TNote " auf un zwar weil du auf Lied\Stimme zugreifst, dass nicht existiert. Insofern kannst du auch nicht die letzte Note zuweisen ... |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jahoo! Aber das versteh ich nich, ich hab zum test mal den Last-Befehl auskomentiert und da hatt's bei new gestoppt, aber jetz klappt's, bleibt nur noch ein anderer Fehler mit der Datei, aber ich denke, das schaff ich alleine, vielen Dank. | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group