![]() |
MDI Child im Hintergrund
Hallo Leute,
ich habe eine MDI Anwendung in der ich auf der fsMDI-Form ein Navigation auf der Linken Seite habe und als alClient ein Panel auf dem irgendwelche Neuigkeiten stehen. Leider liegt ein MDI-Child immer hinter beiden panels. Gibt es eine Möglichkeit, das die Objekte auf der fsMDI-Form im Hintergrund liegen? Danke Oliver |
Re: MDI Child im Hintergrund
Moin, moin,
also das Clientformular kann nur da liegen wo kein Panel ist, direkt auf dem Formular. Experimente mit Parent bringen da nur die MDI-Steuerung durcheinander. Wenn es darum geht Informationen anzuzeigen, an dem Ort wo später das Clientformular erscheint, dann hast Du folgende Möglichkieten: 1.: Du blendest Dein Panel mit Informationen ein/aus (visible). 2.) Du legst eine Grafik auf den Canvas des Hauptformulars (MDI). 3.) Du hast ein weiteres Clientformular mit den Informationen und beide werden dynamisch ein/ausgeschaltet. Grüße // Martin |
Re: MDI Child im Hintergrund
was ich an der ganzen sache nicht verstehe ist,
das ein Bild (TImage) im Hintergrund liegt, aber ein Panel im Vordergrund. Welche Eigenschaft fehlt oder hat das Panel denn mehr, das es vor dem MDI-Fenster liegt? |
Re: MDI Child im Hintergrund
Ein Panel ist ein "wirkliches" Fenster, mit einem Handle - ein TImage nicht.
Nimm bei deinem TPanel das alClient weg (mach's mit Anchors) und verschiebe es mit SendToBack in der Z-Order nach hinten, dann sollten die MDI-Children darüber liegen. |
Re: MDI Child im Hintergrund
Liste der Anhänge anzeigen (Anzahl: 2)
haha, wenn es so wäre bin ich ja zufrieden.
so ist es aber nicht. es liegt IMMER im vordergrund |
Re: MDI Child im Hintergrund
Tja - das Problem liegt hier wohl darin begründet, wie MDI funktioniert.
Die MDI-Children sind nämlich nicht direkt die Kindfenster deines Hauptfensters sondern dazwischen liegt ein Fenster mit der Klasse MDICLIENT. Du könntest noch das hier versuchen (z.B. in FormShow):
Delphi-Quellcode:
Ist aber "dirty" und könnte durchaus unerwünschte Nebeneffekte haben!
Windows.SetParent(Panel1.Handle, Form1.ClientHandle);
SetWindowPos(Panel1.Handle, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); |
Re: MDI Child im Hintergrund
Moin, moin,
Also wenn ein Hintergrundbild da ist, dann gibt es da auch einen Canvas und da kann man dann auch mit Texout schreiben. Im Übrigen kann man an einem Ort nun mal nur eine Lage haben. Eben Fenster oder Info. Möglichkeit 1: Nimm Fenster und lege Informationen in ein zweit3es Fenster Möglichkeit 2: Zeichne / Schreibe auf den Canvas des MDI-Formulars Das war es // Martin |
Re: MDI Child im Hintergrund
@flocke
genial :-) klappt perfekt... super cool, danke danke danke Oliver |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz