Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi DelphiX: Vollbild/Auflösung Problem (https://www.delphipraxis.net/45357-delphix-vollbild-aufloesung-problem.html)

Neutral General 4. Mai 2005 19:29


DelphiX: Vollbild/Auflösung Problem
 
Mein Spiel hat eine Auflösung von 640*480.
Ich lade ein Level, die DX-Form öffnet sich und das Spiel beginnt.
Schließt man das DX-Fenster und will nochmal spielen so hat man eine 1024*768er Auflösung.
Und das ist ziemlich dumm weil dann ein großer Teil des Bildschirms schwarz ist und das Spielfeld sehr klein.

Mit einem Klick auf Start :

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
 Form1.LadeLevel('Level.txt');
 Form1.Show; // Form1 = Spiel
 Form1.DXTimer1.Enabled := true;
 Form2.Hide; // Form2 = Menü
end;
Das Formular erscheint ...

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
DXDraw1.Options := DXDraw1.Options + [doFullScreen];
...
// es folgen Sachen die nix mit der Auflösung zu tun haben... Klassen werden erstellt etc..
end;
Man spielt mit einer schönen 640*480er Auflösung.

Man beendet das Spiel :

Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var i : Integer;
begin
  Form2.Show;
  DXDraw1.Options := DXDraw1.Options - [doFullScreen];
  DXDraw1.Initialize;
  for I:= 1 to DXSpriteEngine1.Engine.Count do
  DXSPriteEngine1.Engine.Items[0].Free;
end;
und landet im Hauptmenü. Wenn man wieder auf den Startbutton klickt hat man ne 1024*768er Auflösung :(

[edit=sakura] [Klammern ersetzt] Mfg, sakura[/edit]

Die Muhkuh 4. Mai 2005 20:00

Re: [DelphiX] Vollbild/Auflösung Problem
 
Hi,

ich gehe mal davon aus, dass du Initalization und Finalization von Hand aufrufst.

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
DXDraw1.Finalize;
DXDraw1.Options := DXDraw1.Options + [doFullScreen];
DXDraw1.Initalize;
...
// es folgen Sachen die nix mit der Auflösung zu tun haben... Klassen werden erstellt etc..
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var i : Integer;
begin
  Form2.Show;
  DXDraw1.Finalize; // <<-
  DXDraw1.Options := DXDraw1.Options - [doFullScreen];
  DXDraw1.Initialize;
  for I:= 1 to DXSpriteEngine1.Engine.Count do
  DXSPriteEngine1.Engine.Items[0].Free;
end;
Versuchs ma so

Neutral General 5. Mai 2005 16:40

Re: [DelphiX] Vollbild/Auflösung Problem
 
Danke !! So gehts. Ich hatte es auch sconmal mit Finalize versucht aber da hab ich ne Fehlermeldung bekommen. Warum muss man Finalize ins OnShow UND ins OnClose schreiben ? Ich hatte es nur im OnClose und das ging nicht ... :gruebel:

Die Muhkuh 5. Mai 2005 17:02

Re: [DelphiX] Vollbild/Auflösung Problem
 
Hi,

warum das so ist, kann ich auch nicht sagen. Ich hatte nur mal geraten.

mimi 8. Mai 2005 09:42

Re: [DelphiX] Vollbild/Auflösung Problem
 
ich vermute mal die zeichenfläche muss erst frei geben werden und dann wieder installierst werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:02 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