Autor Beitrag
Mashalla
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 48

Windows 7 Professional
Delphi 7 Enterprise, Turbo Delphi Explorer 2006
BeitragVerfasst: Di 05.01.10 01:26 
Versuche mich aktuell etwas mehr an der GUI Programmierung und hänge gerade daran, eine ähnliche Funktionalität zu implementieren, wie sie jeder Media Player besitzt. Maus fährt an den unteren Bildschirmrand -> Kontrollleiste wird eingeblendet. Maus entfernt sich wieder -> Leiste verschwindet. Hört sich ja eigentlich nach OnMouseEnter und OnMouseLeave an dachte ich mir. 2 Formen gebastelt, die eine über die andere gelegt und probiert ... es geht leider nicht. Ich verstecke die darüberliegende Form entweder mit "Hide" oder "Visible := false", kann sie danach allerdings nicht mehr aktivieren. Ich schätze mal, dass OnMouseEnter nur anspringt, wenn die Komponente sichtbar ist oder ich komme gar nicht mehr an die versteckte Form ran, weil diese nun unter dem 1. Fenster liegt ... Nunja, ich hatte mir jetzt gedacht, dass ich einfach auf Form1 eine unsichtbare (Edit: Natürlich nicht unsichtbar ... ^^) Komponente lege (Panel oder sowas) und dort beim Einfahren Form2 anzeigen lasse. Das Verstecken der Form geht ja dann.

Wie macht man das eigentlich "richtig"? Wird doch bestimmt schon mal jemand hier implementiert haben :)
FinnO
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1331
Erhaltene Danke: 123

Mac OSX, Arch
TypeScript (Webstorm), Kotlin, Clojure (IDEA), Golang (VSCode)
BeitragVerfasst: Di 05.01.10 02:00 
Wenn du einen Fading-Effekt haben möchtest, führt AFAIK kein Weg an Selbstzeichnen auf einer TPaintbox vorbei, wenn es nur ein Boolesches Sichtbar und nichtsichtbar sein soll, reicht im "MouseMove" der Form soetwas:

ausblenden Delphi-Quelltext
1:
 Panel1.Visible := self.ClientHeight - Y <= Panel1.Height;					
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Mi 06.01.10 18:19 
Also ich denke eher, dass das ganze über OnMouseMove zu lösen sein müsste.
Wenn also dann
ausblenden Delphi-Quelltext
1:
FormWieAuchImmerDuSieNennst.Width=intNormalwert and x>FormWieAuchImmerDuSieNennst.Width					

ist, dann müsstest Du die Form vergrößern in etwa so:
ausblenden Delphi-Quelltext
1:
FormWieAuchImmerDuSieNennst.Width:=intGrosseWidth;