Mehrere Forms zur laufzeit, adressierung
-
hi!
Ich habe folgendes problem:
Ich habe 2 fenster: ein fenster mit einer memo komponente und ein ein kontroll fenster mit button welches zur laufzeit mit "memoform = new ...." mehrere fenster mit der memo komponente erstellen kann.
außerdem verfügt das kontrollfenster über ein zweites button mit dem es einen text in die memo komponente des anderen einfügen kann.
wenn ich nun mehrere fenster mit memo komponente habe wie kann ich nun vom kontroll fenster aus definieren, das er immer in die memo komponente des aktuellen fensters einfügen soll?MfG Matthias
-
was heist aktuelles fenster? ist das eine mdi-anwendung?
-
also aus einem kontrollfenster (cwindow) erstelle ich durch klicken von Button 1 ein neues Fenster auf basis der form "formWindow":
void __fastcall TcWindow::Button1Click(TObject *Sender)
{
formWindow = new TformWindow(this);
formWindow->Show();
}formWindow enthällt ein eine Memo Komponente.
jetz klicke ich mehrmals auf das button und erstelle somit viele fenster.
wenn ich jetz auf ein zweites button klicke soll in das oberste, aus benutzer sicht, der "formWindow"s in das Memo was eingefügt werden.
wie?
(kein MDI)
-
Was ist denn aktiv??? Das Fenster mit den Buttons???
Moment mal, verstehe ic hdas richtig, du hast z.B. 3 Fenster, 2 Memo und ein Buttonfenster, das Buttonfenster ist aktiv und du willst mit Buttondruck die oberste Form Text einfügen, oder???
[ Dieser Beitrag wurde am 16.04.2003 um 18:59 Uhr von aaaabyx editiert. ]
-
in das memo feld des oberen von zwei fenstern mit memo feld ja
-
hallo,
moment mal, das stimmt was nicht, wie soll man das oberste fenster mit memo-feld
ermitteln können, wenn zu diesem zeitpunkt das kontrollfenster das oberste ist,
denn mit dem button auf diesem fenster lößt man ja die ganze aktion aus, und in dem moment wo auf den button geklickt wird, ist ja keines der memo-fenster das oberste sondern eben das kontrollfenster...mfg
murph
-
hi,
...und um dieses problem zu umgehen müßte man das kontrollfenster vor der schreibaktion unsichtbar machen und danach wieder einblenden:
void __fastcall TForm1::Button1Click(TObject *Sender) { FormWindow = new TformWindow(this); Form2->Show(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { this->Visible = false; TForm2* FormWindow = dynamic_cast<TformWindow*>(Screen->ActiveForm); FormWindow->Memo1->Lines->Text = "foo"; this->Visible = true; }
mfg
murph
-
werds ma probiern danke
-
ehm kleine zusatz frage;
wenn ich den name des fensters (formwindow->caption) weiß... wie gehts dann?
(ich lasse die caption hochzählen -> window0 bis windown