Probleme mir Edit
-
Hallo,
habe ein Problem und weis nicht warum dies auftritt. Eigentlich sollte dies funktionieren.
Problem:
Ich habe zwei Formulare.
Beim ersten Formular ist ein Edit-Fenster. dort gebe ich etwas ein und bestätige diese Eingabe mit einem Button. Gleichzeitig wir Formular 2 aufgerufen. Jetzt soll dort in einem Label der Inhalt von Edit angezeigt werden.
Fview->Label1->Caption = Anlegen->Edit1->Text;Was ist dort falsch??
-
Kennt Form2 denn deine Form1 (include) ?
-
Ja, Header-Dateien sind alle eingebunden.
Wenn ich Form2 aufrufe und "->" nutze, zeigt er mir die Möglichkeiten, die ich nutzen kann.Deshalb ist es ja so komisch.
-
Fview->Label1->Caption = Anlegen->Edit1->Text;Wann wird das aufgerufen ?
-
Hallo
@webid : "habe ein Problem" ist keine ausreichende Fehlerbeschreibung. Wo ist die genaue Fehlermeldung?

Und der Threadtitel ist auch nicht sinnvoll und aussagekräftig!
bis bald
akari
-
Wird aufgerufen, wenn ich den Button betätige.
1. Schritt: Schreiben der Daten
2. Schritt: Öffnen des FormularsFview->Label1->Caption = Anlegen->Edit1->Text; //Text von Form2 in Form3 Form1->Label1Click(Sender); //Button hat gleiche Funktion wie Button bei Form1 //Alternativ für -Form1->Label1Click(Sender)- Fview = new TFview(Application); Fview->ShowModal(); delete Fview;
-
Hallo Akari,
Leider wird keine Fehlermeldung angezeigt beim compilieren und builden.
Sollte eigentlich auch nicht, da ich der Meinung bin, dass der Code richtig ist.Doch wenn ich das Programm ausprobiere, wird der Text von Edit aus Formular A nicht im Label bei Formular B angezeigt, wenn ich einen Button drücke.
Dies ist mein Problem.
-
Fview->Label1->Caption = Anlegen->Edit1->Text; Fview = new TFview(Application);Wenn der Code tatsächlich in dieser Reihenfolge aufgerufen wird, ist es kein Wunder, dass das nicht funktioniert. Du hast eine bestehende Instanz von Fview. Dieser weist Du eine Caption zu. Dann erstellst Du eine neue Instanz von Fview und zeigst diese an. Die Caption hast du allerdings in der vorherigen Instanz geändert. Aber an diese kommst du nicht mehr heran, weil Du den Zeiger darauf mit einer neuen Instanz überschrieben hast.
-
Hallo
Dann schreib bitte beim nächsten Mal genau was das Problem ist und las uns nicht raten.
Aus dem zweiten Codeausschnitt lese ich heraus, das du mit dem dynamischen Erstellen von Forms durcheinander kommst. Du weist zuerst einem Control des neuen Forms etwas zu, und dann erstellst du das ganze Form mitsamt dem Control. Klar das dann in dem Control nichts drin steht.
Die Frage ist warum du überhaupt ein Form manuell erstellst? Wenn Fview der von der IDE automatisch angezeigte Zeiger auf die automatisch erstellte Form-Instanz TFview ist, brauchst (und solltest) du gar nichts neu erstellen. Entferne die Zeolen mit dem new und delete und es sollte nun funktionieren.
Falls du wirklich manuell das Form erstellen willst, dann arbeite bitte mit lokalen Zeigern. Dann muß das so aussehen
TFview* Fview = new TFview(Application); Fview->Label1->Caption = Anlegen->Edit1->Text; //Text von Form2 in Form3 Fview->ShowModal(); delete Fview;bis bald
akari
-
In diesem Fall vielleicht besser
TFview* Fview = new TFview(0);Wenn man manuell löscht braucht man keinen Owner.
-
Danke für die Tipps. Es funktioniert jetzt so wie es soll. Werde mir das fürs nächste Mal merken.