AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Fehler: Undefinierter Bezeichner! Wo liegt das Problem?

Fehler: Undefinierter Bezeichner! Wo liegt das Problem?

Ein Thema von AlexII · begonnen am 17. Mai 2009 · letzter Beitrag vom 3. Jun 2009
Antwort Antwort
Seite 4 von 6   « Erste     234 56   
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#31

Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?

  Alt 31. Mai 2009, 20:15
Ich hab diesen Code hier aus dem Forum, ich ging davon aus, der ist richtig, hab nur aus diesem:


Delphi-Quellcode:
procedure StatusProc(buffer: Pointer; len, user: DWORD); stdcall;
begin
  if (buffer <> nil) and (len = 0) then
    Form1.Label5.Caption := PChar(buffer); // display connection status


  if (FileNeme = '') then
    exit;
  if (FileStream = nil) then
      FileStream:= TFileStream.Create(FileNeme, fmCreate); // create the file
  if (buffer = nil) then
      FileStream.Free // finished downloading
   else
      FileStream.Write(buffer^, len);

end;
diesen gemacht:

Delphi-Quellcode:
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;
Der FileStream wird nur wo anders erstellt (in der StopRec) und fertig. Hm....
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#32

Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?

  Alt 1. Jun 2009, 13:00
Zitat von Gausi:
Ü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.
Wo wird denn die Aufnahme gestoppt?
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
881 Beiträge
 
Delphi 11 Alexandria
 
#33

Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?

  Alt 1. Jun 2009, 13:16
Weiß ich nicht, aber wenn eine Prozedur StopRec heißt, würde ich annehmen, dass die was mit dem Stoppen der Aufnahme zu tun hat. Wenn du die ausführst, wenn die Aufnahme gestartet wird, ist das natürlich auch ok.

Hast du dort mittlerweile das/die "FileStream := " eingefügt?
The angels have the phone box.
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#34

Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?

  Alt 1. Jun 2009, 13:20
Hab die Aufnahme soweit fertig, es wird aber nicht auf nen Knopfdruck aufgenommen, sondern sofort wenn ein Sender abgespielt wird. Hat jemand eine Idee wie ich die Aufnahme mit einem Knopfdruck starte und stoppe?

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:='my.mp3';
  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]);
  ChannelDir:=StringReplace(ChannelDir, '.', '', [rfReplaceAll]);

  if DirectoryExists(Root + '\' + CCRDir) then
  begin
       if DirectoryExists(Root + '\' + CCRDir + '\' + ChannelDir) then
       begin
       //showmessage(Root + '\' + CCRDir + '\' + ChannelDir);
       Filestream:=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);
                    Filestream:=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
                   Filestream:=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);
                                Filestream:=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) then
      Form1.StopRec;
  if (buffer = nil) then
      FileStream.Free // finished downloading
   else
      FileStream.Write(buffer^, len);
end;
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#35

Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?

  Alt 1. Jun 2009, 13:25
Zitat von Gausi:
Weiß ich nicht, aber wenn eine Prozedur StopRec heißt, würde ich annehmen, dass die was mit dem Stoppen der Aufnahme zu tun hat. Wenn du die ausführst, wenn die Aufnahme gestartet wird, ist das natürlich auch ok.

Hast du dort mittlerweile das/die "FileStream := " eingefügt?
Ja die Prozedure heißt nicht passend, muss mal umbennenen. Ja hab ich eingefügt.
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#36

Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?

  Alt 2. Jun 2009, 21:45
Siehe Post #34

Kann mir keiner was dazu sagen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.859 Beiträge
 
Delphi 11 Alexandria
 
#37

Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?

  Alt 2. Jun 2009, 22:00
Vielleicht solltest du das so anpassen:
function TForm1.StopRec: TFileStream;
Markus Kinzler
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#38

Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?

  Alt 2. Jun 2009, 22:01
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.859 Beiträge
 
Delphi 11 Alexandria
 
#39

Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?

  Alt 2. Jun 2009, 22:08
Du vermischst immer wieder freie Prozeduren/Funktionen mit Methoden, hantierst auf Variabeln, welche du im unheimlich geheimen Teil, den du uns weiterhin unterschlägst ( vollständige Klassendeklaration).
Zudem schinst du noch weitere Do-Nots zu fröhnen wie globale Variablen, zumidest greifst du ständig auf Variablen zu, die weder lokale sind noch im rudimentären Klassenkopf sichtbar sind; da du auf diese auch in der freien Prozedur zugreifst vermute ich mal das diese global sind.
Markus Kinzler
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#40

Re: Fehler: Undefinierter Bezeichner! Wo liegt das Problem?

  Alt 2. Jun 2009, 22:13
Ich bin Hobby-Programmierer, verzeih hab dein Post überhaupt nicht verstanden.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz