Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi GLScene und DXF (https://www.delphipraxis.net/208561-glscene-und-dxf.html)

Alter Mann 16. Aug 2021 19:03

GLScene und DXF
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,

da ich für eine kleine Anwendung zur Anzeige 3D benötige, habe ich mir mal GLSceneViewer-Demo und
ein paar Youtube-Videos angeguckt. Leider schaffe ich es nicht vorliegende DXF-Dateien zur Anzeige zu
bringen, da immer eine Exception(siehe gekürzter Anhang) ausgelöst wird.
Zum Anzeigen die TXT-Datei in DXF umbennen.

Als Ursache haben ich folgende Stelle in der GLS.FileDXF - Unit ausgemacht:
Delphi-Quellcode:
...
  TGLDXFVectorFile = class(TGLVectorFile)
  private
    FSourceStream: TStream; { Load from this stream }
    FBuffer: String; { Buffer and current line }
...
  function TGLDXFVectorFile.ReadLine: STRING;
  var
    j: Integer;
    FLine: STRING;
    NewlineChar: CHAR;


    procedure FillBuffer;
    var
      l: Integer;
    begin
      l := FSourceStream.Size - FSourceStream.Position;
      if l > BufSize then
        l := BufSize;
      SetLength(FBuffer, l);
      FSourceStream.Read(FBuffer[1], l);   [COLOR="Lime"]// <-- Hier[/COLOR]
      FBufPos := 1;
    end;
...
Könnt Ihr in besagter Demo (falls vorhanden) eines der möglichen 3D-Formate anzeigen?
Deuten die Schriftzeichen in der Exception daraufhin, dass GLScene nicht Unicode fähig ist oder
hat das andere Gründe?

Danke

PS Hier gibt es keine Exception
Delphi-Quellcode:
..
  procedure FillBuffer;
  var
    l: Integer;
    Data : TBytes;
  begin
    l := FSourceStream.Size - FSourceStream.Position;
    if l > BufSize then l := BufSize;
    SetLength(Data, l);
    FSourceStream.ReadBuffer(Pointer(Data)^, l);
    FBuffer := TEncoding.Default.GetString(Data);
    FBufPos := 1;
  end;
...

Uwe Raabe 16. Aug 2021 19:21

AW: GLScene und DXF
 
Zitat:

Zitat von Alter Mann (Beitrag 1493630)
dass GLScene nicht Unicode fähig ist

Das ist zumindest an dieser Stelle in der Tat so. Der Code geht implizit von 1-Byte Strings aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 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