AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TMemoryStream Create Problem

Ein Thema von skoschke · begonnen am 15. Feb 2019 · letzter Beitrag vom 2. Mär 2019
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: TMemoryStream Create Problem

  Alt 15. Feb 2019, 09:16
Hallo,
ich habe deinen Code mal ausprobiert (mit ms1 als lokale Variable).

Auch eingeschaltener Optimierung ist ms1 nicht nil.
Woher weisst du das?
Heiko
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TMemoryStream Create Problem

  Alt 15. Feb 2019, 10:02
Ich habe ms1 im Überwachungsfenster, wird dort als Nil angezeigt.

Berlin 10.1 wenn das relevant ist.

Ciao
Stefan
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TMemoryStream Create Problem

  Alt 15. Feb 2019, 10:06
Zitat:
Wo genau liegt denn dein Problem?
es knallt wenn ich versuche solch einen leeren Stream in einen anderen (hier Übergabe an WPTools) zu kopieren

Delphi-Quellcode:
  ms1.Position :=0;
  ms2.CopyFrom(ms1, ms1.Size);
Ciao
Stefan
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.371 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TMemoryStream Create Problem

  Alt 15. Feb 2019, 10:14
Bei mir ist Tokyo im Einsatz.

Es ist, wie Uwe schon geschrieben hat.

Dein Beispiel knallt bei mir übrigens nicht.
Ich fürchte, du suchst den Fehler an der falschen Stelle.
Peter
  Mit Zitat antworten Zitat
DasWolf

Registriert seit: 7. Jun 2016
76 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: TMemoryStream Create Problem

  Alt 15. Feb 2019, 10:16
Bei mir ist Tokyo im Einsatz.

Es ist, wie Uwe schon geschrieben hat.

Dein Beispiel knallt bei mir übrigens nicht.
Ich fürchte, du suchst den Fehler an der falschen Stelle.
Ich habe es auch nachgestellt und es läuft problemlos mit Version 10.1 Berlin.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: TMemoryStream Create Problem

  Alt 15. Feb 2019, 10:39
Hallo,
Zitat:
es knallt wenn ich versuche solch einen leeren Stream in einen anderen (hier Übergabe an WPTools) zu kopieren
Ist denn ms2 erzeugt?

Zeig mal mehr Code.

Minimal-Beispiel ohne WPTools klappt auch nicht?


Bei welcher Zeile "knallt" es?
ms1.Position :=0;
ms2.CopyFrom(ms1, ms1.Size);
Heiko
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: TMemoryStream Create Problem

  Alt 15. Feb 2019, 11:44
Der Stream-Lesefehler beim Kopieren war ein Positionierungsfehler meinerseits, ändert aber nichts daran dass ein erzeugter Stream im Objektinspektor als Nil angezeigt wird (siehe Anhang)

Ciao
Stefan
Angehängte Grafiken
Dateityp: jpg Neue Bitmap (2).jpg (93,3 KB, 32x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.371 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: TMemoryStream Create Problem

  Alt 15. Feb 2019, 11:52
Nein, der Stream ist nicht nil.
Genauer gesagt, weder ms1 noch ms2 sind nil, sondern die zugehörigen Memory-Pointer. Das ist was anderes. Uwe Raabe hatte das auch schon geschrieben.
Peter
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
715 Beiträge
 
Delphi 12 Athens
 
#9

AW: TMemoryStream Create Problem

  Alt 15. Feb 2019, 13:30
Der Stream-Lesefehler beim Kopieren war ein Positionierungsfehler meinerseits, ändert aber nichts daran dass ein erzeugter Stream im Objektinspektor als Nil angezeigt wird (siehe Anhang)
Du verstehst die Anzeige falsch. Was der Insektor da in den runden Klammern anzeigt ist der *Inhalt* der Felder/Eigenschaften der beiden TMemoryStream-Objekte.

Delphi-Quellcode:
  TCustomMemoryStream = class(TStream)
  private
    FMemory: Pointer;
    FSize, FPosition: NativeInt;

 TMemoryStream = class(TCustomMemoryStream)
  private
    FCapacity: NativeInt;
Für einen leeren TMemorystream ist FMemory = nil, FSize = 0, FPosition = 0, FCapacity = 0.

Die beiden Objektreferenzen selbst sind nicht nil, sonst würde die Anzeige anders aussehen
Peter Below
  Mit Zitat antworten Zitat
Antwort Antwort

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 22:04 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