![]() |
Maximiertes Fenster wird von der Taskleiste verdeckt (mit Lösung)
Wenn ich mein "altes" Programm maximiere, dann verschwindet der untere Teil hinter der Taskleiste. Eigentlich sollte das Fenster so maximiert werden, dass der untere Teil des Fensters über dem oberen Teil Taskleiste endet.
Ich hatte hier in der DP nicht wirklich die Lösung gefunden. Die Suche über Google hat folgende Lösung gebracht. Wenn ein Theme in den Projektoptionen im Bereich Erscheinungsbild ausgewählt wird, dann muß die Option "Laufzeit-Themes aktivieren" markiert sein. Das hatte ich in diesem Fall vergessen weil es ein altes Projekt war. Bei neuen Projekten ist diese Option automatisch markiert. Habe mir gedacht, daß ich die Lösung mal schreibe. Vielleicht kann es der ein oder andere gebrauchen. |
AW: Maximiertes Fenster wird von der Taskleiste verdeckt (mit Lösung)
Kann ich so nicht nachvollziehen, auch mit Windows 2000-Look wird ein VCL-Fenster korrekt maximiert. Gab es sonst noch etwas besonderes?
|
AW: Maximiertes Fenster wird von der Taskleiste verdeckt (mit Lösung)
Wie gesagt. Problem ist behoben. War nur ein Hinweis für die jenigen, die ggf. mal das Problem haben.
Ich kann es auch bei neuen Projekten reproduzieren. * Neues Projekt anlegen. * Projektoptionen -> Anwendung -> Erscheinungsbild -> Theme z.B. "Slate Classico" auswählen. * Projektoptionen -> Anwendung -> Lauzeit-Themes aktivieren -> Haken entfernen. Nun schiebt sich das maximierte Fenster hinter die Taskleiste. * Projektoptionen -> Anwendung -> Lauzeit-Themes aktivieren -> Haken setzen. Maximierte Größe ist OK |
AW: Maximiertes Fenster wird von der Taskleiste verdeckt (mit Lösung)
Zitat:
![]() Unabhängig davon ob irgendeine Theme aktiviert ist. Zitat:
gruss |
AW: Maximiertes Fenster wird von der Taskleiste verdeckt (mit Lösung)
Zitat:
|
AW: Maximiertes Fenster wird von der Taskleiste verdeckt (mit Lösung)
Zitat:
Delphi-Quellcode:
.
fsStayOnTop
![]() |
AW: Maximiertes Fenster wird von der Taskleiste verdeckt (mit Lösung)
Zitat:
Meine FullScreen Funktion.
Delphi-Quellcode:
gruss
procedure ToogleFullScreen;
var wP: WINDOWPLACEMENT; hMon: HMONITOR; tmi: MONITORINFO; rw: TRect; begin FullScreen := not FullScreen; ZeroMemory(@wP, sizeof(wP)); if (GetWindowPlacement(gP.MainHandle, wP)) then if (wP.showCmd = SW_SHOWMAXIMIZED) then SendMessage(gP.MainHandle, WM_COMMAND, ID_RESTORE, 0); if FullScreen then begin if (gP.PanelHandle <> 0) then DestroyWindow(gP.PanelHandle); gP.PanelHandle := CreatePanel(gP.MainHandle); ShowWindow(BackVisgroundFrame.Handle, SW_HIDE); if KVideo_GetPlayerState = psPlaying then btnFPlay.Enabled := False; GetWindowRgn(gP.MainHandle, oldRgn); GetWindowRect(gP.MainHandle, rcSaved); SetWindowPos(gP.MainHandle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_FRAMECHANGED or SWP_SHOWWINDOW); // Topmost hMon := MonitorFromWindow(gP.MainHandle, MONITOR_DEFAULTTONEAREST); ZeroMemory(@tmi, sizeof(tmi)); tmi.cbSize := sizeof(tmi); GetWindowRect(gP.MainHandle, rw); GetMonitorInfo(hMon, @tmi); screenWidth := abs(tmi.rcMonitor.Right - tmi.rcMonitor.Left); screenHeight := abs(tmi.rcMonitor.Bottom - tmi.rcMonitor.Top); rw.left := tmi.rcMonitor.left; rw.top := tmi.rcMonitor.top; rw.right := screenWidth; rw.bottom := screenHeight + 94; MoveWindow(gP.MainHandle, rw.left, rw.top, rw.right, rw.bottom, TRUE); // Videowindow GetWindowRect(MovieHandle, rcVideo); VideoSizeChanged := true; MoveWindow(MovieHandle, 0, 0, screenWidth, screenHeight, TRUE); newRgn := CreateRectRgn(0, 0 , screenWidth, screenHeight); if (newRgn <> 0) then SetFocus(MovieHandle); if (gP.PanelHandle <> 0) then begin gP.PanelEffect := GetTickCount + ALPHA_LENGTH; trbFullScreen.SetTrackMinMax(trbFullScreen.Handle, 0, integer (aMediaProperty.PlaybackLength div 10000)); ShowWindow(gP.PanelHandle, SW_SHOW); end; end else begin if (gP.PanelHandle <> 0) then begin Show_Cursor(); gP.PanelEffect := 0; DestroyWindow(gP.PanelHandle); end; // Videowindow if (VideoSizeChanged) then begin VideoSizeChanged := False; MoveWindow(MovieHandle, rcVideo.Left, rcVideo.Top, rcVideo.Right, rcVideo.Bottom, true); end; screenWidth := rcSaved.Right - rcSaved.Left; screenHeight := rcSaved.Bottom - rcSaved.Top; SetWindowRgn(gP.MainHandle, oldRgn, False); SetWindowPos(gP.MainHandle, HWND_NOTOPMOST, rcSaved.Left, rcSaved.Top, screenWidth, screenHeight, SWP_SHOWWINDOW); if (oldRgn <> 0) then SetWindowRgn(gP.MainHandle, oldRgn, TRUE); if (newRgn <> 0) then DeleteObject(newRgn); PostMessage(gP.MainHandle, WM_SIZE, 0, MAKELONG(screenWidth, screenHeight)); ShowWindow(BackVisgroundFrame.Handle, SW_SHOW); end; KVideo_Resize; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:03 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