AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Anwendung im Vollbildmodus

Ein Thema von Tommy1988 · begonnen am 18. Sep 2007 · letzter Beitrag vom 4. Nov 2007
Antwort Antwort
Tommy1988
(Gast)

n/a Beiträge
 
#1

Anwendung im Vollbildmodus

  Alt 18. Sep 2007, 19:33
Folgender Code lässt eine Anwendung im Vollbild anzeigen

Delphi-Quellcode:
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;
Meine Frage nun:
Wie kann man das rückgängig machen?
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#2

Re: Anwendung im Vollbildmodus

  Alt 18. Sep 2007, 20:01
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:
//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;
Hab das try-finally und das with jetzt der Einfachheit halber weggelassen.
Philipp F.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#3

Re: Anwendung im Vollbildmodus

  Alt 18. Sep 2007, 21:16
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.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#4

Re: Anwendung im Vollbildmodus

  Alt 18. Sep 2007, 21:39
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
Philipp F.
  Mit Zitat antworten Zitat
Mokuba01

Registriert seit: 26. Jan 2007
Ort: Neupetershain
76 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Anwendung im Vollbildmodus

  Alt 4. Nov 2007, 15:32
bei mir kommt:
Zitat von Delphi4:
[Fehler] Unit1.pas(55): Undefinierter Bezeichner: 'Playing'
[Fehler] Unit1.pas(74): ';' erwartet, aber '.' gefunden
[Fehler] Unit1.pas(76): Deklaration erwartet, aber Dateiende gefunden
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Anwendung im Vollbildmodus

  Alt 4. Nov 2007, 15:42
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
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:01 Uhr.
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