![]() |
Memo Feld aus anderem Formular auslesen
Hallo, ich habe mir ein Memofeld (Name: Textfeld) in Form1 erstellt. Da schreibt man jetzt was rein und wenn man dann auf Speichern klickt, öffnet sich Form2, Wo der Text aus "Textfeld" in eine Datei geschrieben wird. Wie kann ich das Textfeld auslesen, welches sich in einem anderen Formular befindet?
Delphi-Quellcode:
Datei ist eine Stringvariable, welche sich folgendermaßen zusammensetzt:
Textfeld.Lines.SaveToFile(Datei);
Delphi-Quellcode:
Das habe ich als vorherigen Schritt gemacht. C:\Users\ ist das Zielverzeichnis, Dateiname.text ist ein Textfeld mit Eingabe und .dat soll eine beliebige Endung darstellen.
Datei:=('C:\Users\') +Dateiname.text + ('.dat');
Liebe Grüße! |
Re: Memo Feld aus anderem Formular auslesen
Hi,
ich weis noch nicht so ganz was du willst. Vielleicht
Delphi-Quellcode:
Ansonsten beschreib doch mal genauer :)
AnderesFormular.Textfeld.Lines.SaveToFile(Datei);
Gruß angos |
Re: Memo Feld aus anderem Formular auslesen
Hallo,
die Art welche nicht unbedingt schön ist (zirkularer Verweis) TForm1 in TForm2 einbinden Form1.TextFeld.savetoFile(). .. oder den Inhalt des Textfeldes irgendwie der Form2 übergeben. .. oder das Desgin etwas übderdenken. Warum kann das Memofeld denn nicht in Form1 abgespeichert werden? Grüße Klaus |
Re: Memo Feld aus anderem Formular auslesen
Vom Prinzip her meine ich das, doch der sagt mir: [Fehler] Speichern.pas(32): Undefinierter Bezeichner: 'Textfeld'
Also Inhalt Formular1: Memo (Name: Textfeld) Button (Name: sichern) ButtonSichern: Zeigt Formular2 über Formular1 Inhalt Forumular2 Editfeld (Name: Dateiname) Button (Name: bestaetigen) Buttonbestaetigen: Datei:=('C:\Users\') +Dateiname.text + ('.dat'); Formular1.Textfeld.Lines.SaveToFile(Datei); Variable Datei wurde global deklariert. |
Re: Memo Feld aus anderem Formular auslesen
Also um ganz einfach deinen Ansatz zur Lösung zu bringen musst du in deiner Speichern-Formular-Unit unter "Implementation" USES unit1; einfügen, falls der Quelltext deines ersten Forms in Unit1.pas gespeichert ist, ansonsten entsprechendes schreiben ...
Im Speichern Formular beginnst du nun das ansprechen der Komponente Textfeld mit dem Namen des Formulars, also z.B. Form1 ---> sodass du schreiben musst: Form1.Textfeld. ... usw. Um deine Globale Variable im Speichern Form nutzen zu können muss sie im ersten Form über "Implementation" deklariert sein. Gruß Tony, PS: Kleiner Hinweis, da dies zum äußersten Grundlagenwissen gehört, solltest du die vielleicht noch ein paar Grundlagen-tutorials bei ![]() |
Re: Memo Feld aus anderem Formular auslesen
Dass ich das Formular referenzieren muss war mir klar, hab ich auch gemacht. Formular1 uses Formular2 und auch andersrum.
Trotzdem klappts nicht... Und die Variable wird in Formular2 deklariert, also direkt vor Ort. Sollte also auch keine Rolle spielen... |
Re: Memo Feld aus anderem Formular auslesen
Dann poste doch mal bitte deinen Code.
|
Re: Memo Feld aus anderem Formular auslesen
Mach mal nicht (Name: Textfeld) sondern (aName: Textfeld) oder so^^
|
Re: Memo Feld aus anderem Formular auslesen
Formular1 (Eingabe)
Delphi-Quellcode:
unit Formular1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls; type TWort = class(TForm) Textfeld: TMemo; //<-Hier ist das Textfeld... Hauptmenu: TMainMenu; Dokument: TMenuItem; Neu: TMenuItem; Sichern: TMenuItem; //<- Hier ist der Verweis auf Form2 Oeffnen: TMenuItem; Schliessen: TMenuItem; Drucken: TMenuItem; Extras: TMenuItem; EMail: TMenuItem; Spende: TMenuItem; Hilfe: TMenuItem; Hilfedatei: TMenuItem; SaveDialog1: TSaveDialog; Schriftart: TMenuItem; Arial: TMenuItem; ComicSansMS: TMenuItem; TimesNewRoman: TMenuItem; Standard: TMenuItem; Textgroesse: TMenuItem; G7: TMenuItem; G9: TMenuItem; G11: TMenuItem; G13: TMenuItem; G15: TMenuItem; G20: TMenuItem; G30: TMenuItem; procedure SichernClick(Sender: TObject); procedure TextfeldChange(Sender: TObject); procedure ComicSansMSClick(Sender: TObject); procedure ArialClick(Sender: TObject); procedure TimesNewRomanClick(Sender: TObject); procedure StandardClick(Sender: TObject); procedure G7Click(Sender: TObject); procedure G9Click(Sender: TObject); procedure G11Click(Sender: TObject); procedure G13Click(Sender: TObject); procedure G15Click(Sender: TObject); procedure G20Click(Sender: TObject); procedure G30Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Wort: TWort; vText: string; datei:string; implementation uses Speichern; {$R *.DFM} procedure TWort.SichernClick(Sender: TObject); begin Speicherdialog.show; //<-Formular2 wird gezeigt end; procedure TWort.TextfeldChange(Sender: TObject); begin vText:=Textfeld.Text; end; procedure TWort.ComicSansMSClick(Sender: TObject); begin Textfeld.Font.Name:=('Comic Sans MS'); end; procedure TWort.ArialClick(Sender: TObject); begin Textfeld.Font.Name:=('Arial'); end; procedure TWort.TimesNewRomanClick(Sender: TObject); begin Textfeld.Font.Name:=('Times New Roman'); end; procedure TWort.StandardClick(Sender: TObject); begin Textfeld.Font.Name:=('MS Sans Serif'); end; procedure TWort.G7Click(Sender: TObject); begin Textfeld.Font.Size:=7; end; procedure TWort.G9Click(Sender: TObject); begin Textfeld.Font.Size:=9; end; procedure TWort.G11Click(Sender: TObject); begin Textfeld.Font.Size:=11; end; procedure TWort.G13Click(Sender: TObject); begin Textfeld.Font.Size:=13; end; procedure TWort.G15Click(Sender: TObject); begin Textfeld.Font.Size:=15; end; procedure TWort.G20Click(Sender: TObject); begin Textfeld.Font.Size:=20; end; procedure TWort.G30Click(Sender: TObject); begin Textfeld.Font.Size:=30; end; end. Formular2 (Speicherformular)
Delphi-Quellcode:
unit Speichern;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TSpeicherdialog = class(TForm) Dateiname: TEdit; //<-Hier kommt der Dateiname rein, unter dem gespeichert werden soll Label1: TLabel; Speichern: TButton; //<-In dieser Prozedur kommt die Fehlermeldung procedure SpeichernClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Speicherdialog: TSpeicherdialog; Datei : string; //<-Meine Variable... Global!!! implementation uses Formular1; // heißt eigentlich anders... {$R *.DFM} procedure TSpeicherdialog.SpeichernClick(Sender: TObject); begin Datei:=('C:\Users\') +Dateiname.text + ('.dat'); // Klappt wunderbar... Formular1.Textfeld.Lines.SaveToFile(Datei); // Hier die oben genannte Fehlermeldung... end; end. @Forlan: Was soll das bringen??? |
Re: Memo Feld aus anderem Formular auslesen
@ Delphi-Narr
Ich hab das so verstanden das du eine Variable "Name" hast von irgendeinem Typ. Das ist eine häufige Fehlerquelle... Aber so scheint es ja nicht zu sein. :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 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-2025 by Thomas Breitkreuz