AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Memo Feld aus anderem Formular auslesen

Ein Thema von Delphi-Narr · begonnen am 25. Sep 2009 · letzter Beitrag vom 25. Sep 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#1

Memo Feld aus anderem Formular auslesen

  Alt 25. Sep 2009, 12:13
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?

Textfeld.Lines.SaveToFile(Datei); Datei ist eine Stringvariable, welche sich folgendermaßen zusammensetzt:

Datei:=('C:\Users\') +Dateiname.text + ('.dat'); 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.
Liebe Grüße!
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Memo Feld aus anderem Formular auslesen

  Alt 25. Sep 2009, 12:50
Hi,

ich weis noch nicht so ganz was du willst. Vielleicht
AnderesFormular.Textfeld.Lines.SaveToFile(Datei); Ansonsten beschreib doch mal genauer

Gruß
angos
Ansgar
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Memo Feld aus anderem Formular auslesen

  Alt 25. Sep 2009, 12:52
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
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Memo Feld aus anderem Formular auslesen

  Alt 25. Sep 2009, 12:55
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.
  Mit Zitat antworten Zitat
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Memo Feld aus anderem Formular auslesen

  Alt 25. Sep 2009, 13:11
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 http://www.delphi-treff.de/ ansehen
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Memo Feld aus anderem Formular auslesen

  Alt 25. Sep 2009, 13:14
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...
  Mit Zitat antworten Zitat
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Memo Feld aus anderem Formular auslesen

  Alt 25. Sep 2009, 13:16
Dann poste doch mal bitte deinen Code.
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  Mit Zitat antworten Zitat
Benutzerbild von Forlan
Forlan

Registriert seit: 17. Feb 2008
Ort: Herford
265 Beiträge
 
Delphi 2007 Architect
 
#8

Re: Memo Feld aus anderem Formular auslesen

  Alt 25. Sep 2009, 13:17
Mach mal nicht (Name: Textfeld) sondern (aName: Textfeld) oder so^^
Marcel
マルセル
www.youtube.com/beethoven1990
  Mit Zitat antworten Zitat
Benutzerbild von Delphi-Narr
Delphi-Narr

Registriert seit: 29. Aug 2009
Ort: Duisburg
437 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Memo Feld aus anderem Formular auslesen

  Alt 25. Sep 2009, 13:23
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???
  Mit Zitat antworten Zitat
Benutzerbild von Forlan
Forlan

Registriert seit: 17. Feb 2008
Ort: Herford
265 Beiträge
 
Delphi 2007 Architect
 
#10

Re: Memo Feld aus anderem Formular auslesen

  Alt 25. Sep 2009, 13:29
@ 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.
Marcel
マルセル
www.youtube.com/beethoven1990
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:50 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