Announcement

Collapse
No announcement yet.

Bildschirmauflösung wenn Formular Vollbild ist

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Bildschirmauflösung wenn Formular Vollbild ist

    Hallo,<p> das wechseln der Bildschirmauflösung funktioniert (fast) (beim Starten des Programms eine andere Auflösung). Nun das Problem: Mein Formular wird als Vollbild angezeigt. Wechsel ich nun die Auflösung sollte sich auch eigentlich (über WM_GETMIMMAXINFO) das Vollbild des Formulars anpassen. Doch leider funktioniert das nicht. Ich sehe z.B. noch die Programmleiste. Was mache ich falsch. Eine andere Frage noch in diesem Zusammenhang. Wenn der Benuter z.B. ALT+TAB drückt (wechseln in ein anders Programm) sollte die alte Auflösung erscheinen und wenn er zu meinem Programnm wieder wechselt soll die neue Auflösung wieder erscheinen. Lezte Frage: Ist es möglich nur die Bildauflösung innerhalb eines Anwendungsfensters zu ändern?<p> Danke jetzt schon für Tipps.

  • #2
    Hallo,

    das folgende Beispiel stammt aus einem Buch <i>Delphi Win32-Lösungen</i>:
    <pre>
    { ************************************************** **************
    Typ : Hauptformular
    Autor : Andreas Kosch
    Compiler : Delphi 5 Enterprise
    Betriebssystem : Windows 98
    Begonnen am : 07.11.1999
    Beschreibung : Formular nimmt den vollständigen Bildschirm-
    bereich ein.
    ************************************************** ************** }
    unit FullScreenFrm;

    interface

    uses
    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    StdCtrls, Buttons;

    type
    TFormMain = class(TForm)
    BitBtnClose: TBitBtn;
    CheckBoxFullScreen: TCheckBox;
    procedure CheckBoxFullScreenClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    private
    { Private-Deklarationen }
    FRect : TRect;
    procedure WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);
    message WM_GETMINMAXINFO;
    public
    { Public-Deklarationen }
    end;

    var
    FormMain: TFormMain;

    implementation

    {$R *.DFM}

    procedure TFormMain.FormCreate(Sender: TObject);
    begin
    FRect := BoundsRect;
    end;

    { Immer dann, wenn auch der Bereich der Windows-Taskleiste ausgeblendet
    werden soll, muß die Botschaft WM_GETMINMAXINFO ausgewertet und der
    Botschafts-Parameter dabei durch die neue Größe modifiziert werden. }

    procedure TFormMain.WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);
    begin
    inherited;
    with Msg.MinMaxInfo^.ptMaxTrackSize do
    begin
    X := Screen.Width + (Width - ClientWidth);
    Y := Screen.Height + (Height - ClientHeight);
    end;
    end;

    procedure TFormMain.CheckBoxFullScreenClick(Sender: TObject);
    begin
    if CheckBoxFullScreen.Checked then
    SetBounds(Left - ClientOrigin.X, Top - ClientOrigin.Y,
    Screen.Width + (Width - ClientWidth),
    Screen.Height + (Height - ClientHeight))
    else
    BoundsRect := FRect;
    end;

    end.
    </pre&gt

    Comment


    • #3
      Hallo,<p> danke zuersteinmal. Genau das oben genannte Beispiel habe ich in mein Projekt eingefügt (etwas abgeändert, so dass beim Programmstart das Formular gleich als Vollbild angezeigt wird). Nun möchte ich auch beim Programmstart die Bildschirmauflösung ändern (ChangeDisplaySettings). Nachdem ich die Auflösung geändert habe, erscheint das Formular nicht mehr als Vollbild. Warum? Kann es sein, dass zuerst die Auflösung geändert werden muss und anschliessend das Formular auf Vollbild vergrößert werden muss

      Comment


      • #4
        Hallo,

        ja - oder der Vollbildaufruf wird nach dem Wechsel wiederholt

        Comment

        Working...
        X