![]() |
Anwendung im Vollbildmodus
Folgender Code lässt eine Anwendung im Vollbild anzeigen
Delphi-Quellcode:
Meine Frage nun:
var
HTaskbar: HWND; OldVal: LongInt; i : Integer; begin Playing := True; try // Find handle of TASKBAR HTaskBar := FindWindow('Shell_TrayWnd', nil); // Disable the taskbar EnableWindow(HTaskBar, False); // Hide the taskbar ShowWindow(HTaskbar, SW_HIDE); finally with Form1 do begin BorderStyle := bsNone; FormStyle := fsStayOnTop; Left := 0; Top := 0; Height := Screen.Height; Width := Screen.Width; end; end; Wie kann man das rückgängig machen? |
Re: Anwendung im Vollbildmodus
Hi.
Also bei mir braucht man dieses ganze Zeugs zum Verschwinden lassen der Taskbar gar nicht. Wenn du das Fenster wieder genau so haben willst wie es war, dann müsstest du die Werte zwischenspeichern.
Delphi-Quellcode:
Hab das try-finally und das with jetzt der Einfachheit halber weggelassen.
//Groß
procedure TForm3.Button1Click(Sender: TObject); var HTaskbar: HWND; OldVal: LongInt; i : Integer; begin Playing := true; oldW := Width; oldH := Height; oldX := Left; oldY := Top; { // Find handle of TASKBAR HTaskBar := FindWindow('Shell_TrayWnd', nil); // Disable the taskbar EnableWindow(HTaskBar, False); // Hide the taskbar ShowWindow(HTaskbar, SW_HIDE); } BorderStyle := bsNone; FormStyle := fsStayOnTop; Left := 0; Top := 0; Height := Screen.Height; Width := Screen.Width; end; //Normal procedure TForm3.Button2Click(Sender: TObject); var HTaskbar: HWND; OldVal: LongInt; i : Integer; begin Playing := False; { // Find handle of TASKBAR HTaskBar := FindWindow('Shell_TrayWnd', nil); // Disable the taskbar EnableWindow(HTaskBar, True); // Hide the taskbar ShowWindow(HTaskbar, SW_SHOW); } BorderStyle := bsSizeable; FormStyle := fsNormal; Left := oldX; Top := oldY; Height := oldH; Width := oldW; end; |
Re: Anwendung im Vollbildmodus
Das Programm welches mir die Taskleiste deaktiviert werde ich sofort vom Rechner verbannen!
Zudem funktioniert der Code bei mehreren Bildschirmen wirklich nicht wie gewünscht, da das Programm auf einem Bildschirm sein kann, wo die Taskleiste garnicht ist. Der Benutzer wird sich wundern, warum er plötzlich die Taskleiste oder Teile nicht mehr verwenden kann. Es ist einfach ein schlechter Programmierstil, wenn Programme ohne Einverständnis des Benutzers, plötzlich andere Programme in ihrem Verhalten ändern. Nimm doch Maximize bzw Restore und dann noch StayOnTop Flag für eine Form. Man kann auch die Größe vom Bildschirm selbst bestimmen und dann die Fenstergröße setzen. Man sollte jedoch die Möglichkeit den gesamten Bildschirm zu überdecken nur als EINE Möglichkeit von vielen dem Benutzer darstellen. Letztendlich muss der Benutzer, zm zu anderen Programmen springen zu können, die Tastatur bedienen, da die Maus hier nicht funktionier. Die Leiste ist ja überdeckt (ich denke da an rahmenlose Fenster). Als Programmierer muss man immer für den Benutzer arbeiten und nicht gegen ihn. |
Re: Anwendung im Vollbildmodus
Joa, da muss ich meinem Vorredner nachträglich zustimmen.
Der einzige Grund warum ich mein Programm zum Fullscreen vergrößern würde ist ne Grafik (OpenGL etc...) Anwendung, aber selbst da würde ich eine Abfrage machen, ob der User denn nicht lieber im Window-Mode arbeiten möchte... Nehmen wir mal an das Programm hat die Taskleiste ausgeblendet und stürzt dann ab...ein normaler User ist dann ge0wned (Neustart vorprogrammiert). Deshalb ist einfaches Maximieren wohl besser. Ps: Sry, erst die Antwort, dann die Kritik...sollte es nächste mal vll andersrum sein :oops: |
Re: Anwendung im Vollbildmodus
bei mir kommt:
Zitat:
|
Re: Anwendung im Vollbildmodus
könnte vllt daran liegen das du Playing nicht deklariert hast weil das garnix mit dem Vollbild zu tun hat?
einfach löschen und gut is |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:06 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