![]() |
Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?
Hab das jetzt so gemacht, aber irgendwie stürzt das Prog ab... :gruebel:
Delphi-Quellcode:
private
{ Private declarations } procedure StopRec; procedure TForm1.StopRec; var Root, CCRDir, ChannelDir, FileName : String; begin Root:=GetSpecialFolderForMP3(Handle, CSIDL_PERSONAL); CCRDir:='CCRadio Recordings'; ChannelDir:=Label4.Caption; FileName:=FormatDateTime('dd.mm.yy', date) + ' - ' + FormatDateTime('hh.nn.ss', time) + '.mp3'; ChannelDir:=StringReplace(ChannelDir, '\', ' ', [rfReplaceAll]); ChannelDir:=StringReplace(ChannelDir, '/', ' ', [rfReplaceAll]); ChannelDir:=StringReplace(ChannelDir, ':', ' ', [rfReplaceAll]); ChannelDir:=StringReplace(ChannelDir, '*', ' ', [rfReplaceAll]); ChannelDir:=StringReplace(ChannelDir, '?', ' ', [rfReplaceAll]); ChannelDir:=StringReplace(ChannelDir, '"', ' ', [rfReplaceAll]); ChannelDir:=StringReplace(ChannelDir, '<', ' ', [rfReplaceAll]); ChannelDir:=StringReplace(ChannelDir, '>', ' ', [rfReplaceAll]); ChannelDir:=StringReplace(ChannelDir, '|', ' ', [rfReplaceAll]); if DirectoryExists(Root + '\' + CCRDir) then begin if DirectoryExists(Root + '\' + CCRDir + '\' + ChannelDir) then begin TFileStream.Create(Root + '\' + CCRDir + '\' + ChannelDir + '\' + FileName, fmCreate); end else if (not CreateDir(Root + '\' + CCRDir + '\' + ChannelDir)) then begin SaveDialog1.FileName:=FileName; if SaveDialog1.Execute then //WaveStream.SaveToFile(SaveDialog1.FileName); end else begin CreateDir(Root + '\' + CCRDir + '\' + ChannelDir); TFileStream.Create(Root + '\' + CCRDir + '\' + ChannelDir + '\' + FileName, fmCreate); end; end else if (not CreateDir(Root + '\' + CCRDir)) then begin SaveDialog1.FileName:=FileName; if SaveDialog1.Execute then //WaveStream.SaveToFile(SaveDialog1.FileName); end else begin CreateDir(Root + '\' + CCRDir); if DirectoryExists(Root + '\' + CCRDir + '\' + ChannelDir) then begin TFileStream.Create(Root + '\' + CCRDir + '\' + ChannelDir + '\' + FileName, fmCreate); end else if (not CreateDir(Root + '\' + CCRDir + '\' + ChannelDir)) then begin SaveDialog1.FileName:=FileName; if SaveDialog1.Execute then //WaveStream.SaveToFile(SaveDialog1.FileName); end else begin CreateDir(Root + '\' + CCRDir + '\' + ChannelDir); TFileStream.Create(Root + '\' + CCRDir + '\' + ChannelDir + '\' + FileName, fmCreate); end; end; //RecordStatus:=False; end; procedure StatusProc(buffer: Pointer; len, user: DWORD); stdcall; begin if (buffer <> nil) and (len = 0) then SendMessage(win, WM_INFO_UPDATE, 8, DWORD(PChar(buffer))); if (FileStream = nil) and RecordStatus=True then Form1.StopRec; if (buffer = nil) then FileStream.Free // finished downloading else FileStream.Write(buffer^, len); end; |
Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?
Was heist abstürzen? es gibt sicherlich auch eine Fehlermeldung!
Warum postest du immer nur Codefragmente, die immer weitere Fragen offenlassen. Ist die Definition am Anfang, die der Klasse TForm1? |
Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?
Liste der Anhänge anzeigen (Anzahl: 1)
Das ist der ganze Code der die Aufnahme betrifft...
Die Fehlermeldung am Anhang. |
Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?
Zitat:
Debugge dein Programm einmal, dann siehst du, in welcher Zeile der Fehler auftritt. Der Fehler weist auf den Zugriff auf ein nicht instantiiertes Objekt hin ( 0 = nil) |
Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?
Ich würde einfach tippen, dass das Programm durch das DirectoryExists-Gewusel nicht durchblickt und deshalb den FileStream nicht erzeugt, in den später was geschrieben wird. :stupid: Probier mal, den Code mit ForceDirectories aufzuräumen.
Außerdem: es muss heißen
Delphi-Quellcode:
Stürzt das Programm ab, oder bricht die Compilierung ab? Denn die Fehlermeldung am Anfang ist doch eine Compiler-Fehlermeldung, oder nicht? Edit: Anhang nicht gesehen.
Filestream := TFileStream.Create( .... );
|
Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?
Verzeih, hab mich falsch ausgedruckt, das Prog startet ohne Fehler, es stürzt beim Play eines Senders, wärend es mit ihm connectet wird.
|
Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?
Zitat:
|
Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?
Zitat:
|
Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?
Hier
Delphi-Quellcode:
Pardon, werde mich ab jetzt besser und ausführlicher ausdrücken. :)
chan := BASS_StreamCreateURL(url, 0, BASS_STREAM_STATUS, @StatusProc, 0);
|
Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?
Ich wüsste nicht, dass so ein Aufruf der bass.dll-Funktion eine Exception wirft.
Überleg doch mal, was du da machst. Erst wenn die Aufnahme gestoppt wird, erzeugst du den Filestream, in den du während der Aufnahme reinschreibst. Das kann doch gar nicht funktionieren. Von der fehlerhaften Erzeugung bzw. fehlenden Zuweisung an die Variable FileStream mal abgesehen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz