Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Probleme mit TMemo.Create (https://www.delphipraxis.net/93753-probleme-mit-tmemo-create.html)

benst 10. Jun 2007 21:59


Probleme mit TMemo.Create
 
Hi,

ich habe da ein kurze Frage... Habe dafür ein kleines Beispiel geschrieben (das ist nicht mein eigentliches Programm, die Zeilen sollen nur meine Frage beschreiben)...

Delphi-Quellcode:
procedure TextCopy(a, b: String);
var Memo: TMemo;
begin
  if FileExists(a) then
    begin
    Memo:=TMemo.Create(nil);
    Memo.Lines.LoadFromFile(a);
    Memo.Lines.SaveToFile(b);
    Memo.Lines.Clear;
    end;
end;
Dies führt zu einer Fehlermedlung: "Element '' hat kein übergeordnetes Fenster." Ich habe "nil" schon durch "Form1" ersetzt, aber das bringt auch nichts.
Was mache ich falsch?

Gruß
Ben

Thorben_Ko 10. Jun 2007 22:02

Re: Probleme mit TMemo.Create
 
da TMemo ein komponennte ist, musst du den parent setzen

Delphi-Quellcode:
procedure TextCopy(a, b: String);
var Memo: TMemo;
begin
  if FileExists(a) then
    begin
    Memo:=TMemo.Create(self);
    Memo.Parent := Form1;
    Memo.Lines.LoadFromFile(a);
    Memo.Lines.SaveToFile(b);
    Memo.Lines.Clear;
    Memo.Free; //Freigeben net vergessen
    end;
end;

Luckie 10. Jun 2007 22:05

Re: Probleme mit TMemo.Create
 
Wer benutzt den eine Memo, um Dateien zu kopieren? :gruebel:

benst 10. Jun 2007 22:20

Re: Probleme mit TMemo.Create
 
Danke.
Stimmt, 'free' hatte ich in meinem kleinen Beispiel vergessen. Ist es aber denn sinnvoll die Zeilen zu löschen, wenn ich das gesamte Memo in der nächsten Zeile eh freigeben.

@Luckie: Wie schon erwähnt, geht es mir nicht darum eine Datei zu kopieren... Mir ist nur gerade kein besseres Beispiel eingefallen...

benst 10. Jun 2007 22:28

Re: Probleme mit TMemo.Create
 
Ist es sinnvoll "free" mit "try"..."finally" zu koppeln?
Also quasi...
Delphi-Quellcode:
Memo:=TMemo.Create(self);
...
try
...
finally
Memo.Free;

Luckie 10. Jun 2007 22:47

Re: Probleme mit TMemo.Create
 
Jupp.


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