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.
Announcement
Collapse
No announcement yet.
Bildschirmauflösung wenn Formular Vollbild ist
Collapse
X
-
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>
-
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
Comment