Delphi: Tmemo.create

Ich habe folgenden Code in meinem Programm:

procedure Test;
Var MyTest:TMemo;
begin
MyTest := TMemo.create(self);
MyTest.lines.loadfromfile(Dateiname);
MyTest.free;
end;

Nun… wäre ja toll wenn das so einfach wäre, aber leider funktioniert es einfach nicht ! Ich habe auch schon versucht TMemo.create(nil) einzusetzen. Aber auch dies brachte keine Verbesserung. Es erscheint dauernd ein Error (Element " hat kein übergeordnetes Fenster)… Was muss ich tun, damit ich ein Memo zur Laufzeit erstellen kann ?

Was
muss ich tun, damit ich ein Memo zur
Laufzeit erstellen kann ?

Wie wärs mit nem schlaumachenden Blick ins Handbuch oder in die Online-Hilfe?

Guck Dir mal Deinen Code an und mach Dir erstmal klar, daß es ja wohl keinen Sinn macht, ein Memo zu erstellen und eine einmillionstel Sekunde später wieder zu löschen. Die Create- und die Destroy-Aktionen müssen also zumindest mal in verschiedenen Prozeduren stattfinden!

Probiers mal damit:

VAR MyMemo: TMemo;

procedure TForm1.FormCreate(Sender: TObject);
begin
MyMemo := TMemo.Create(Form1);

WITH MyMemo DO
begin
Parent := Form1;
Left := 20;
Width := 200;
Top := 50;
Height := 200
end
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
MyMemo.Destroy
end;

Die Zeile „Parent := Form1“ ist wichtig; wenn Du sie wegläßt, kriegst Du den Fehler „Element hat kein übergeordnetes Fenster“. Weitere Infos findest Du im f***ing Manual oder in der Hilfe.

Gruß
Martin

TAKE IT EASY !!!

Musst ja nicht grad so aufbrausen… Ich hab natürlich den Code nur so als Beispiel geschrieben. Es ist ja wohl für alle LOGISCH denkenden Menschen klar, dass ich kein Memo erstelle, wenn ich es dann gerade wieder lösche. Aber ich konnte ja wohl nicht den ganzen Code vom erstellen bis zum löschen des Memos hier eintragen, denn das wären mehr als 100 Zeilen gewesen.

Das nächste mal wenn Du ne Antwort schreibst, empfehle ich Dir zuerst mal zu überlegen, bevor Du grad rumspinnst !

Christian

P.S. Trotzdem danke für den Beispielcode. Werde Morgen in der Firma schauen, obs klappt !

Hi Christian,

also ich glaube, wir sind da wohl Opfer eines Mißverständnisses geworden. Daß Du hier nicht 100 Zeilen Code posten kannst (und willst), ist natürlich klar, aber ich denke, es wäre vielleicht gut gewesen, wenn Du an den Stellen, wo Du soviel gelöscht hast, einfach „(…)“ oder so eingefügt hättest, mit einer entsprechenden kurzen Erklärung dazu im Text. Dann hätte ich nicht wer weiss was gedacht :wink:. Das mit dem „völlig logisch“ ist - finde ich - immer dann so eine Sache, wenn der Beantworter nur aus der Frage auf den Kenntnisstand desjenigen, der sie stellt, schließen kann. Daher glaube ich, daß es hier nie ein Fehler ist, solche Begleitumstände zu erwähnen.

Also, nichts für ungut, ja?

Viele Grüße in die Schweiz
Martin

Okay… geb ichs halt zu…

Aber als ich diesen Artikel las, war ich schon aus anderen Gründen relativ auf „180“ und somit brauchte es nicht mehr viel, bis das Fass überlief. Sorry von meiner Seite…

Was das (…) angeht, werde ich versuchen, mir das in Zukunft anzugewöhnen :wink:

Christian