Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TStringList drucken (https://www.delphipraxis.net/3942-tstringlist-drucken.html)

ereetzer 7. Apr 2003 11:57


TStringList drucken
 
Hallo, habe folgenden Code zum drucken einer StringList:

Code:
procedure TForm1.BitBtn14Click(Sender: TObject);
var
  FileList: TStringList;
  aRichEdit: TRichEdit;
  i: integer;
begin
  FileList := TStringList.Create;
  For i := 0 to FileListBox1.Count -1 do
  begin
    FileList.Add(FileListBox1.Items[i]);
  end;
  FileList.SaveToFile('c:\text.txt');
  aRichEdit.Lines.LoadFromFile('c:\text.txt');
  aRichEdit.Print('Test');
  aRichEdit.Free;
  FileList.free;
end;
Die test.txt wird ordentlich erstellt. Nur dann kommt:
Zugriffsverletzung bei Adresse ......

Wenn ich aber manuell ein RichEdit ins Formular platziere, das dann unsichtbar mache, dann klappt das. Irgendwas hab ich wohl vergessen. Nur
was?

Hat einer ne Idee?

cu
ereetzer

sakura 7. Apr 2003 12:06

Re: TStringList drucken
 
So sollte es gehen.

Delphi-Quellcode:
procedure TForm1.BitBtn14Click(Sender: TObject);
var
  aRichEdit: TRichEdit;
  i: integer;
begin
  aRichEdit := TRichEdit.Create(Self);
  try
    aRichEdit.Lines.Assign(FileListBox1.Items);
    aRichEdit.Print('Test');
    aRichEdit.Free;
  finally
    aRichEdit.Free;
  end;
  FileList.free;
end;
...:cat:...

ereetzer 7. Apr 2003 12:17

thx, hab das mal ausprobiert. Jetzt kommt diese Meldung:

Element '' hat kein übergeordnetes Fenster.

Das sagt mir rein gar nix. Was kann man mit dieser Fehlermeldung anfangen??

ereetzer

ereetzer 7. Apr 2003 12:21

Re: TStringList drucken
 
Zitat:

Zitat von sakura
So sollte es gehen.

Delphi-Quellcode:
procedure TForm1.BitBtn14Click(Sender: TObject);
var
  aRichEdit: TRichEdit;
  i: integer;
begin
  aRichEdit := TRichEdit.Create(Self);
  try
    aRichEdit.Lines.Assign(FileListBox1.Items);
    aRichEdit.Print('Test');
    aRichEdit.Free;
  finally
    aRichEdit.Free;
  end;
  FileList.free;
end;
...:cat:...

ok, habe jetzt die Zeile:
Code:
    aRichEdit.Parent := Form1;
eingefügt. Jetzt druckt er so, wie er soll, bringt aber noch die Fehlermeldung: Format '%p' ungültig oder nicht kompatibel mit Argument?
Was bedeutet das denn nun schon wieder?

ereetzer

sakura 7. Apr 2003 12:32

An welcher Stelle wird der Fehler denn gebracht?

...:cat:...

ereetzer 7. Apr 2003 12:40

Zitat:

Zitat von sakura
An welcher Stelle wird der Fehler denn gebracht?

...:cat:...

Der aktuelle Code:

Code:
procedure TForm1.BitBtn14Click(Sender: TObject);
var
  aRichEdit: TRichEdit;
begin
  aRichEdit := TRichEdit.Create(Self);
  aRichEdit.Parent := Form1;
  try
    aRichEdit.Lines.Assign(FileListBox1.Items);
    aRichEdit.Print('Test');
    aRichEdit.Free;
  finally
    aRichEdit.Free;
  end;
end;
Der Fehler erscheint, nach dem die Liste ordentlich ausgedruckt wurde.
Also der Code ansich funktioniert ja. Nur eben dieser komische Fehler.
Seltsam.
Ich hab das jetzt eben nochmal in nen try..except Block gepackt.
Ist zwar keine Lösung des problems, funktioniert aber.
Vielleicht weiß ja trotzdem wer, warum die Fehlermeldung kommt.

ereetzer

sakura 7. Apr 2003 12:53

Der Fehler kann auch eine andere Ursache haben ;-)

Benutzt Du irgendwo den Befehl Format. Der hat solche Fehlermeldungen. Wenn ja, dann postee mal den Code.

...:cat:...

Luckie 7. Apr 2003 13:01

Das RichEdit wird zweimal freigegeben:
Delphi-Quellcode:
    aRichEdit.Free;
  finally
    aRichEdit.Free;
  end;

ereetzer 7. Apr 2003 13:16

hmm, auf die Stirn hau.

Da guckt man sich den Code 5000 mal an, und sieht so was nicht.

Thx, das wars.

ereetzer

Luckie 7. Apr 2003 13:22

Für solche Fälle haben wir ihn hier: :wall:. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:44 Uhr.
Seite 1 von 2  1 2      

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