![]() |
DrawText Speicher-problem
Hallo, ich habe ein Problem:
Ich gebe auf eine Canvas mehrzeiligen Text mit der DrawText- Procedure aus. ...
Delphi-Quellcode:
Nun möchte ich den Text in einer Datei speichern. Das ist kein Problem. Wenn ich die Datei öffne, soll der Text wieder per DrawText auf eine Canvas ausgeben werden und zwar mit den gleichen Zeilenumbrüchen bzw. Tabstops, wie sie ursprünglich in die Memo eingegeben wurden. Nun speicher die Datei aber den Text als einen String und gibt diesen hintereinanderweg auf die Canvas aus. Zwar mit einen Zeilenumbruch, da es ja eine Beschränkung was das Ausgaberechteck betrifft gibt, aber die Zeilenumbrüche, die ursprünglich da waren werden ignoriert.
var
s: String; r: TRect; begin r:= Rect(10,10,300,200); s:= Mem01.Text; Text:= PChar(s); DrawText(Handle,PChar(Text),length(Text),r, DT_Wordbreak); Kann mir bitte jemand ein Beispiel posten, bei dem der Text in eine Datei gespeichert und aus der Datei inklusive Zeilenumbrüche wieder ausgelesen werden kann? MfG hansklok |
Re: DrawText Speicher-problem
Hi,
hier ein einfaches Beispiel, wie du das ganze mit einem Stream machen könntest:
Delphi-Quellcode:
Das ganze solltest du dann ohne Probleme auch auf ein Canvas mehrzeilig zeichnen können
procedure saveToFile(const FileName : String);
var stream : TMemoryStream; s : String; stringLength : Integer; begin s := 'Dies ist ein Mehrzeiliger' + chr(13) + chr(10) + 'Text'; stringLength := length(s); stream := TMemoryStream.Create; try stream.Position := 0; stream.Write(stringLength, sizeOf(Integer)); stream.Write(s[1], stringLength); stream.SaveToFile(FileName); finally stream.Free; end; end; function loadFromFile(const FileName : String) : String; var stream : TMemoryStream; stringLength : Integer; begin result := ''; stream := TMemoryStream.Create; try stream.LoadFromFile(fileName); stream.Position := 0; stream.read(stringLength, sizeOf(Integer)); if stringLength > -1 then begin setLength(result, stringLength); stream.read(result[1], stringLength); end; finally stream.Free; end; end; Gruß Der Unwissende |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 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 by Thomas Breitkreuz