Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Panel auf Desktop platzieren (https://www.delphipraxis.net/74284-panel-auf-desktop-platzieren.html)

3_of_8 31. Jul 2006 22:16


Panel auf Desktop platzieren
 
Morgen.

Ich habe ein Panel mit mehreren Subkomponenten.

Das Panel dient mir als eine Art "Infobox", die bei nem Mouseover "uppoppt".

Sie poppt immer an Mausposition auf.

Wenn der Popup jedoch ganz rechts bei der Form passiert, kann die Infobox natürlich leider nur innerhalb der Form sein. Sie müsste jedoch, um richtig dargestellt zu werden, die Form verlassen und am Desktop erscheinen.

Wie mache ich das?

Ultimator 31. Jul 2006 22:28

Re: Panel auf Desktop platzieren
 
Machs doch wie ein richtiges PopupMenu: Normalerweise poppts rechts unten auf.
Ist der Rand rechts im Weg, poppts nach links unten auf, ist zusätzlich der Rand unten im Weg, poppts nach links oben auf. Ist nur der untere Rand im Weg, poppts nach rechts oben auf ;)

CalganX 31. Jul 2006 22:35

Re: Panel auf Desktop platzieren
 
Hi,
du könntest das Panel dynamisch erstellen und als Parent versuchen den Screen anzugeben. Im Zweifelsfall direkt auf die API-Funktion (MSDN-Library durchsuchenCreateWindowEx) zurückgreifen und darüber das Panel erstellen (müsste dann wahrscheinlich ein Static mit veränderten Windowstyles sein).

Chris

3_of_8 31. Jul 2006 22:38

Re: Panel auf Desktop platzieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
@Ultimator: Das ist in meinem Fall nicht so schön. Moment, ich häng schnell nen Screenshot an.

@Chakotay: Ich bin noch ein Anfänger in WinAPI, wie genau meinst du das?

noch_ein_hannes 31. Jul 2006 22:46

Re: Panel auf Desktop platzieren
 
Hi,

Wie wäre es einfach mit einem Form "stay on top" und ohne Bordericons etc ... ?

grüsse,
hannes

Jarmen_Kell 31. Jul 2006 22:48

Re: Panel auf Desktop platzieren
 
Du könntest das ganze doch auf eine extra Form setzen und diese dann an Fensterposition sichtbar und nach vorne bringen lassen.
Diese lässt sich definitiv auch über dem Desktop erstellen ;)

Borderstyle natürlich auf bsnone und dann ist der Unterschied auch nicht weiter auffällig.

Edit: Hmm.. Der übliche "Redbox-Bug" der DP :(

Luckie 31. Jul 2006 22:53

Re: Panel auf Desktop platzieren
 
Es gibt Tooltip-Komponenten, die eingeschränktes HTML verstehen. Eventuell wäre das eine Alternative zu deinem Panel.

3_of_8 31. Jul 2006 22:54

Re: Panel auf Desktop platzieren
 
@hannes & Jarmen_Kell: Dann ist allerdings gleichzeitig die Hauptform nicht mehr aktiv... Aber das wäre schonmal eine Methode.


@Luckie: Gute Idee. Kannst du mir nen Link geben?

EDIT: Es gibt da nur ein Problem: Wenn das ganze von THintWindow abgeleitet ist, wird es nach einer gewissen Zeit automatisch ausgeblendet, ich will aber, dass es manuell ausgeblendet wird.

EDIT2: Ich hab jetzt eine Möglichkeit gefunden (durch ausprobieren) die dem, was ich will, schon sehr nahe kommt:

Delphi-Quellcode:
Windows.SetParent(pnlInfoBox.Handle, 0);
Hey, das Ding erscheint doch tatsächlich auf dem Desktop! Problem ist nur: Es wird nicht vor, sondern hinter der Form angezeigt...

EDIT3: Oah mann, wie einfach. *klatsch* Ich setze das Panel einfach auf den Desktop und mach dann BringToFront;

Luckie 1. Aug 2006 04:24

Re: Panel auf Desktop platzieren
 
Zitat:

Zitat von 3_of_8
@Luckie: Gute Idee. Kannst du mir nen Link geben?

Nein, habe ich nur irgendwann mal irgendwo gesehen. Aber Torry wäre bestimmt eine gute erste Anlaufstelle, wenn nicht sogar Google schon hilft.

uligerhardt 1. Aug 2006 08:32

Re: Panel auf Desktop platzieren
 
Vielleicht kannst du ja hieraus ein paar Ideen ziehen.

Uli.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:02 Uhr.
Seite 1 von 2  1 2      

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