Problem mit TMemoryStream.Create

Rund um die LCL und andere Komponenten
Antworten
ore12
Beiträge: 20
Registriert: Fr 3. Feb 2012, 16:37

Problem mit TMemoryStream.Create

Beitrag von ore12 »

Hallo,

bei mir geht TMemoryStream.Create nicht, sondern nur "Stream-Name".Init (xxxx, yyyy).
Das wäre an sich nicht schlimm, aber andere praktische Funktionen wie LoadFromFile ergeben auch immer nur ...identifier idents no member "LoadFromFile"...

Mach ich da was falsch?

Danke für Eure Unterstützung

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Problem mit TMemoryStream.Create

Beitrag von mse »

Zeige mal den Code.

Martin

ore12
Beiträge: 20
Registriert: Fr 3. Feb 2012, 16:37

Re: Problem mit TMemoryStream.Create

Beitrag von ore12 »

Das soll eigentlich eine WAV-Datei lesen:

Code: Alles auswählen

INTERFACE
uses Classes, SysUtils, Objects, mmSystem;  ...
IMPLEMENTATION
 
procedure ProzedurName;
var   mSt : TMemoryStream;
begin
  { mSt := TMemoryStream.Create         geht nicht --> identifier idents no member "Create"   }
    mSt.Init ( 4096, 4096 );
    mSt.LoadFromFile ('ton.wav');        {   --> identifier idents no member "LoadFromFile"   }
    mSt.Free;
end;
Wenn man in Lazarus "mSt." eingibt, ist in der Soforthilfe-Liste der Funktionen das Create bzw. LoadFromFile gar nicht erst enthalten.

ore12
Zuletzt geändert von Lori am So 5. Feb 2012, 17:45, insgesamt 1-mal geändert.
Grund: Highlighter

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Problem mit TMemoryStream.Create

Beitrag von mse »

Versuche mal

Code: Alles auswählen

{$mode objfpc}
INTERFACE
uses Classes, SysUtils, Objects, mmSystem; ...
IMPLEMENTATION
Vermutlich arbeitest du im TurboPascal mode wo tmemorystream so definiert ist:

Code: Alles auswählen

TYPE
   TMemoryStream = OBJECT (TStream)
         BlkCount: Longint;                           { Number of segments }
         BlkSize : Word;                              { Memory block size }
         MemSize : LongInt;                           { Memory alloc size }
         BlkList : PPointerArray;                     { Memory block list }
      CONSTRUCTOR Init (ALimit: Longint; ABlockSize: Word);
      DESTRUCTOR Done;                                               Virtual;
      PROCEDURE Truncate;                                            Virtual;
      PROCEDURE Read (Var Buf; Count: Longint);                      Virtual;
      PROCEDURE Write (Var Buf; Count: Longint);                     Virtual;
      PRIVATE
      FUNCTION ChangeListSize (ALimit: Longint): Boolean;
   END;
Edit:
uses Classes, SysUtils, Objects, <- hier ist das Problem, "Objects" braucht es im Objpas und Delphi Modus nicht.
Edit 2:
Es sei denn, du willst tatsächlich mit objects statt Klassen arbeiten. Willst du?

Martin

ore12
Beiträge: 20
Registriert: Fr 3. Feb 2012, 16:37

Re: Problem mit TMemoryStream.Create

Beitrag von ore12 »

unit Objects war zuviel, jetzt funktioniert das !

Vielen Dank für Deine Hilfe

Olaf

Antworten