Form innerhalb einer Form
-
Hallo,
Besteht eine Möglichkeit (Außer MDI-Child bzw. MDI-Parent - da dann der Borderstyle nicht veränderbar ist), eine Form nur innerhalb einer anderen Form zu bewegen.
Wie im Anhang zu erkennen ist, ist die 2te Form "Werkzeugleiste" jederzeit aus der "Main"-Form zu bewegen, dies möchte ich unterbinden. (Photoshop-Typisch)
http://www.1-filehost.midnightirc.info/index.php?t=dl&hash=35xCv1FziJ8H16L4ou8N6L0fPdE2C0AG
-
Es gibt doch Anwendungen, in denen kann man Toolbars zwar herausziehen, aber sie schnappen wieder zurück an ihre alte Stelle oder an den äußersten Rand, sobald man die Maustaste loslässt. Das würde über eine einfache Überprüfung der Koordinaten gehen, stell' ich mir so vor... Wenn irgendeine Ecke außerhalb der Hauptform ist, wird die Toolbar am Ursprung positioniert, oder am Rand der Hauptform. Nur so als Alternativ-Idee.

-
Du könntest ja WM_MOVING dieser Form abfangen (wie: http://www.c-plusplus.net/forum/viewtopic-var-t-is-39149.html) und dann bei Bedarf bewegung über die Form hinaus verbieten.
-
Du kannst auch einfach der Form2 die Form1 als Parent zuweisen.
-
Frames.
-
Jansen schrieb:
Du kannst auch einfach der Form2 die Form1 als Parent zuweisen.
Das wars

genau das wollte ich !
Danke !So nun zum nächsten problem,..
Ich generiere meine dynamischen Forms nun, jetzt möchte ich aber gewisse aktionen nur auf die momentan aktive form anwenden.
Ich muss nun heruasfinden welche Form momentan aktiv ist.,,.... gibt es hierfür eine Möglichkeit ?
-
siehe TScreen ActiveForm
-
Linnea schrieb:
siehe TScreen ActiveForm
hmm...
Kleine Verständnissfrage...bei jedem button druck erzeuge ich eine neue Form
TForm *Window = new TForm(this);Kann ich über TScreen ActiveForm bzw. Screen heruasfinden welches Form active ist oder ?
Wie kann ich dann auf genau dieses Form und dessen Elemente zugreifen ?
-
Hallo
darkkiller_ schrieb:
Kann ich über TScreen ActiveForm bzw. Screen heruasfinden welches Form active ist oder ?
Diese Frage hättest du nun wirklich durch Nachlesen in der BCB-Hilfe zu genannter Eigenschaft selbst beantworten können.
Wie kann ich dann auf genau dieses Form und dessen Elemente zugreifen ?
Du hast einer Pointer vom Typ TForm. Wenn der dir nicht ausreicht sondern du wirklich genauen Typ deiner Formklasse brauchst wäre es am leichtesten mit dynamic_cast zu prüfen und zu casten.
bis bald
akari
-
Habs bereits heruasgefunden,...
Weiters dass das der falsche Weg ist, da mein Button der dies durchführt eine eigene Form hat und somit ist immer meine "Werkzeugleiste-Form" die zuletzt aktive,...
Tja anderer Lösungsweg, ich schreibe mir global immer den pointer auf die zuletzt aktive Form "zur Seite",...
-
gesagt getan,..
Window->OnClick=MarkAsActive;
in der main.h
void __fastcall MarkAsActive(TObject *Sender);in der main.cpp
void __fastcall TForm1::MarkAsActive(TObject *Sender) { Sleep(1000); //Test }Breakpoint,.. doch er sprint leider nie in die Funktion

Habe ich etwas übersehen ?