Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   MDI Child im Hintergrund (https://www.delphipraxis.net/55440-mdi-child-im-hintergrund.html)

backdraft 20. Okt 2005 22:36


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

mschaefer 21. Okt 2005 07:23

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

backdraft 24. Okt 2005 11:57

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?

Flocke 24. Okt 2005 12:02

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.

backdraft 24. Okt 2005 15:39

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

Flocke 24. Okt 2005 16:07

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:
Windows.SetParent(Panel1.Handle, Form1.ClientHandle);
SetWindowPos(Panel1.Handle, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
Ist aber "dirty" und könnte durchaus unerwünschte Nebeneffekte haben!

mschaefer 24. Okt 2005 17:45

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

backdraft 26. Okt 2005 21:04

Re: MDI Child im Hintergrund
 
@flocke

genial :-) klappt perfekt... super cool, danke danke danke

Oliver


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz