Hallo kann mir jemand sagen was ich falsch mache (möchte auf mehreren Forms die gleiche Funtion ausführen)
-
Kann mir jemand helfen?
Form11 ist die Form in der die funktion programmiert ist. form2, form3 und form...... enthalten die gleichen komponenten mit den gleichen namen und sollen auf die funktion von form1 zugreifen. was mache ich falsch??
ich bekomme immer die Fehlermeldung
Konvertierung von 'TForm2*' nach 'TForm1*' nicht möglichTForm1 *ActiveWindow; if (Form2->Active) { ActiveWindow = Form2; ActiveWindow->Edit1->Text="Test"; ActiveWindow->Edit2->Text="Test2"; ActiveWindow->Label1->Caption="Hallo"; ActiveWindow->RadioButton1->Checked = true; ActiveWindow->RadioButton2->Checked = false; } else if(Form3->Active) { ActiveWindow = Form3; ActiveWindow->Edit1->Text="Test"; ActiveWindow->Edit2->Text="Test2"; ActiveWindow->Label1->Caption="Hallo"; ActiveWindow->RadioButton1->Checked = true; ActiveWindow->RadioButton2->Checked = false; }
-
Lass das mit dem ActiveWindow einfach weg, wenn du überall die gleichen Komonenten hast:
if (Form2->Active) { Form2->Edit1->Text="Test"; Form2->Edit2->Text="Test2"; Form2->Label1->Caption="Hallo"; Form2->RadioButton1->Checked = true; Form2->RadioButton2->Checked = false; } else if(Form3->Active) { Form3->Edit1->Text="Test"; Form3->Edit2->Text="Test2"; Form3->Label1->Caption="Hallo"; Form3->RadioButton1->Checked = true; Form3->RadioButton2->Checked = false; }
Wozu du das brauchst ist mir trotzdem schleierhaft
EDIT:
Du musst natürlich dann die entsprechenden Header-Dateien "includieren".
-
erstmal danke!!!!!!!!
die möglichkeit die du vorgeschlagen hast würde den rahmen sprengen!!ich habe ca 10 forms mit der gleichen funktion wie form1 und auf form1 sind ca 50 komponenten bzw funktionen. gibt es nicht ne andere möglichkeit????
-
Such mal hier im Forum nach "FindComponent".
Wenn du das mit 'ner Schleife verbindest und die Forms einheitlich mit Form1, Form2, Form3, ... benennst, sollte es kein Problem mehr sein.Jetzt hast du mich im übrigen noch konfuser gemacht - was willst du mit den ganzen Forms eigentlich machen - das geht doch sicher auch eleganter (und weniger Speicherfressend
)
-
hast recht ich denke das ich das auch anders lösen kann.noch mal danke fur deine hilfe
-
Form2, Form3 usw. sehen genauso aus wie Form1, ja? Sollen sie auch alle die gleiche Funktionalität haben? Dann rate ich dir, Form2, Form3 usw. einfach wegzuwerfen und sie am Anfang wie folgt zu deklarieren:
Form2 = new TForm1(Application);
Dann kannst du das ganze nämlich so machen:
TForm1* ActiveWindow = Screen->ActiveForm; ActiveWindow->Edit1->Text="Test"; ActiveWindow->Edit2->Text="Test2"; ActiveWindow->Label1->Caption="Hallo"; ActiveWindow->RadioButton1->Checked = true; ActiveWindow->RadioButton2->Checked = false;