Form2->Caption über Form1 ändern
-
Hi!
Ich bins nochmal.
Ich hab ein Problem!
Ich habe ein Form1 und ein Form2 auf dem ein Label ist.Wenn ich im Form 1 auf den Button drücke, soll in Form2 das Label "Hallo" anzeigen.
#include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "Unit2.h" //----------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { Form2->Label1->Caption = "Hallo!"; }Wenn ich das Proggi jetz laufen lasse und auf den Button eins klicke kommt diese Fehlermeldung:
Zugriffsverletzung bei Adresse 00421F23 in Modul "Project1.exe". Lesen von Adresse 000003FCHILFE!!!
-
Und Form2 ist zu dem Zeitpunkt wo du den Knopf drückst schon existent, also erstellt worden? Wird Form2 gleich nach dem ProgStart mit Form1 zusammen angezeigt?
-
Also sie ist nciht sichtbar und bis dahin auch noch nicht aufgerufen worden.
-
Hallo
Die Frage von Kolumbus war ob eine gültige Instanz von TForm2 hinter dem Zeiger Form2 steht, nicht ob es angezeigt wird. Die Fehlermeldung deutet darauf hin das hinter Form2 keine gültige Instanz steht.
bis bald
akari
-
Meint ihr
TForm2 *Form2?
Das steht drin aber nur in Form2!
-
Hallo
*seufz*
Ja das ist der genannte Pointer. Wir wollen wissen dafür eine gültige Instanz erstellt wird. Normalerweise macht die IDE das automatisch, man kann das aber in den Projektoptionen auschalten. Wenn du das gemacht hast, ist der Zugriff über den Pointer Form2 ungültig.bis bald
akari
-
Und wie kann ich das machen mit der Instanz?
Bitte helft mir!
-
Ja genau. Schau doch mal in den Projekt-Optionen unter Formulare, ob Form2 in der Liste automatisch zu erstelltender Formulare enthalten ist. Wenn nicht, füge es aus der Liste verfügbarer Formulare dort hinzu.
Wenn es in der Liste verfügbarer Formulare auch nicht enthalten ist, müssen dir Andere weiterhelfen... Ich würde dann das Projekt nochmal von vorn anfangen. Über Menü: Datei->Neu... ein Projekt anlegen und über selben Menüpunkt dann Formular2 hinzufügen.
-
Da steht Form 2 bei erzeugen drin!
Hilft abe rnichts!
-
Ersetze
#include "Unit1.h" #include "Unit2.h"durch
#include "Unit2.h" #include "Unit1.h"
-
auch das funzt leider nicht
-
2 Vorschläge:
- probier am besten nochmal mit einem komplett neuen Projekt und nur mit einem Button auf Form1 und einem Label auf Form2
- eventuell liegt der Fehler ja garnicht daran, sondern äußert sich ja nur an dieser Stelle, hast du die Fehlerstelle mit dem Debugger überprüft?