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 6 von 6   « Erste     456
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#51

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

  Alt 2. Jun 2009, 23:38
Zum einen würde ich FreeAndNil(FileStream) aufrufen, wenn du später FileStream = NIL prüfst. Meiner Erfahrung nach ist nicht 100% garantiert, das Free auch das Objekt auf NIL setzt.

Dann wie schon vorgeschlagen, die Verwendung von globalen Variablen eingrenzen.

Eine Möglichkeit wäre, die procedure StopRec in eine function StopRec zu wandeln (wie schon vorgeschlagen), die dann den Zeiger zurückgibt
Delphi-Quellcode:
function TForm1.StopRec : TFileStream;
[...]
Result := FileStream;

// und in StatusProc
if (FileStream = nil) and (RecordStatus=True) then
      FileStream := Form1.StopRec;
StopRec ist eine Methode der Klasse TForm1
StatusProc ist eine freie Procedure
FileStream eine globale Variable

Ich muss ehrlich zugeben, das ich immer noch etwas am stochern bin, weil ich doch nicht so gut bin, da 100% durchzusteigen.

€: Wenn mich nicht alles täuscht, würde der Methode "StopRec" eher ein Name wie "OpenFileStream" stehen. Zumindest stolper ich immer über den Namen, der nicht zur Aufgabe passt.
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

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

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

  Alt 3. Jun 2009, 10:18
StatusProc bekommt ja die Daten zum Speichern. Je nachdem, was der User durch vorheriges Knöpfchendrücken gewünscht hat, sollen die Daten gespeichert oder verworfen werden. Also:
Delphi-Quellcode:
procedure StatusProc(buffer: Pointer; len, user: DWORD); stdcall;
begin
  // Ok, bass.dll hat neue Titel-Informationen bekommen
  // das sollte man wohl immer machen
  if (buffer <> nil) and (len = 0) then
      SendMessage(win, WM_INFO_UPDATE, 8, DWORD(PChar(buffer)))
  else
  begin
    // Daten zum Aufnehmen angekommen
    If UserWillAufnehmen then
    begin
      // Sicherheitsabfrage - ist ein FileStream vorhanden,um die Daten zu speichern?
      if assigned(FileStream) then
      begin
        if (buffer = nil) then
          FreeAndNil(FileStream); // Aufnahme beenden
        else
          FileStream.Write(buffer^, len); // Daten speichern
      end;
    end else
      // nichts machen, user will nicht aufnehmen.
  end;
end;
Das Erzeugen des FileStreams würde ich beim ButtonClick machen, also so:
Delphi-Quellcode:
procedure TForm1.ButtonStartAufnahmeClick(Sender: TObject);
begin
  UserWillAufnehmen := True;
  FileStream := TFileStream.Create ... // usw., Zeug aus der StopRec
end;
Und beim Stoppen dann in etwa sowas:
Delphi-Quellcode:
procedure TForm1.ButtonStoppAufnahmeClick(Sender: TObject);
begin
  UserWillAufnehmen := False;
  FreeAndNil(FileStream);
end;
The angels have the phone box.
  Mit Zitat antworten Zitat
AlexII

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

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

  Alt 3. Jun 2009, 18:56
Wow Gausi, danke

Ich teste das mal, melde mich dann.
  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 17:49 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