![]() |
Fenster von ausserhalb des Bildschirms
Hallo,
ich möchte ein kleines Tool so gestalten, dass es normalerweise ausgeblendet ist und nur (z. B. am rechten Bildschirmrand) einen kleinen "Reiter" zeigt. Wenn man mit der Maus über diesen "Reiter" fährt, soll das Fenster (soll nur eins geben) von rechts nach links in den Bildschirm wandern (so wie es die Taskbar von Windows von unten nach oben macht, wenn sie ausgeblendet ist). Aber ich hab keine Vorstellung, wonach ich suchen muss. Die Threads zu dem Thema, die ich hier gefunden habe, beziehen sich auf "normales" aus- und einblenden von Formularen. Hat vielleicht jemand einen Tip? Gruß Frank |
Re: Fenster von ausserhalb des Bildschirms
Also so wie auch die Dock-Fenster in den neuen Delphi-IDE, wenn du auf diesen Pin klickst?
Also ich denke, dass Du das in diesem Fall selbst schreiben musst. Du könntest dein Form erstmal nur auf diesen Reiter reduzieren (oder auch ein neues Formular nehmen). Dort fängst Du bei OnMouseEnter mit der Einblendsequenz an. Ist diese noch nicht abgeschlossen und Du erhälst ein OnMouseLeave, schließt Du das Fenster wieder sofort. Viele Grüße |
Re: Fenster von ausserhalb des Bildschirms
Liste der Anhänge anzeigen (Anzahl: 1)
Also du sagst du willst ein Fenster außerhalb des Bildschirms. Was wenn einer DualHead hat (zwei oder mehr monitore mit erweitertem desktop)? Dann wäre das Fenster die Ganze zeit auf dem anderen Bildschirm zu sehen. Ich würde auf einfachstem Weg die Scrollbars in Form1 ausblenden, dann mit Width und Left das ding einblenden (um eins nach links verschieben, width um eins vergrößern). Dann würde das Fenster auf die gewünschte größe gezogen werden.
Und anfangs halt einfach nur den Reiter einblenden EDIT: Hab dir hier mal ein kleines beispielprogramm, siehe anhang Ist aber sehr schnell zusammengebastelt, wenn du fehler findest, behalt sie ruhig ;) |
Re: Fenster von ausserhalb des Bildschirms
Hallo,
danke für die aufschlussreichen Antworten, das Beispielprogramm von Hybrid666 schau ich mir am WE mal an, falls ich noch Fragen habe, melde ich mich wieder :). Gruß Frank |
Re: Fenster von ausserhalb des Bildschirms
Hallo,
das "Testproggie" von Hybrid666 funktioniert wunderbar (vielen Dank nochmal), allerdings hab ich doch noch eine Frage: Ich hab jetzt zwei Controls auf der Form, ein Image und ein Gridview. Wie kann ich denn verhindern, dass die beiden Ereignisse OnMouseEnter und OnMouseleave aufgerufen werden, wenn ich den Mauscursor von der Form zum Image und zurückbewege? (Da ich mit Transparenz arbeite, die beim "Ausfahren" der Form abgeschaltet wird, ist dies ein ziemliches Geflacker.) Bin für jeden Tip dankbar. Gruß Frank |
Re: Fenster von ausserhalb des Bildschirms
Eventuell kannst Du ja gucken, ob dann nach dem MouseLeave bzw. vor dem MouseEnter der Cursor vllt auf Deiner eigenen Form bzw. auf dem Image war? Ansonsten könnte Dir ggf. die Eigenschaft "DoubleBuffered" helfen...
Viele Grüße |
Re: Fenster von ausserhalb des Bildschirms
Hallo,
Doublebuffered ist auf True, das ist nicht das Problem. Bei Mouseenter stelle ich den Alphawert auf 255 und bei MouseLeave wieder auf 50 zurück. Da z. B. OnMouseLeave aufgerufen wird, wenn der Mauszeiger von der Form auf das Image wandert, wird kurz der Alphawert geändert. Das heisst, es wird, sobald ich ein Steuerelement mit der Maus erreiche, ständig zwischen 50 und 255 hin- und hergeschaltet. Gruß Frank |
Re: Fenster von ausserhalb des Bildschirms
Moin,
Prüfe im OnMouseEnter, ob Msg.LParam = 0 ist. Hintergrund: Msg.LParam enthält die Komponente, von der die Aktion ausgeht. Wenn der Mauszeiger also Form1 verlässt und Image1 betritt, wäre TObject(Msg.LParam) gleich Deinem Image... Viele Grüße |
Re: Fenster von ausserhalb des Bildschirms
Wie wärs mit AlphaBlendValue als Alternative? Da kannst du dann per Timer das Fenster langsam aus dem unsichtbaren heraus immer mehr erscheinen lassen.
|
Re: Fenster von ausserhalb des Bildschirms
Hallo Larsi,
Alphablendvalue meinte ich mit "Alphawert" :) Gruß Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 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