Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Fenster Maximieren


Roidsear Ó Ghearmáin - Mo 15.09.03 17:29
Titel: Fenster Maximieren
Hallo!

Ich habe auf meinem System (W2k SP4, Delphi 6 Professional) folgendes
Problem...
Wenn ich in meinem Form (MainProgram) folgendes mache:


Delphi-Quelltext
1:
2:
3:
4:
procedure TMainProgram.FormCreate(Sender: TObject);
begin
     MainProgram.WindowState := wsMaximized;
end;


...dann ist das Fenster von den Widgets her zwar maximiert, füllt aber nur ca. 2/3 des Bildschirms. Ich habe 1280x1024 als Auflösung. Er maximiert aber immer genau auf 800x600.
In "MainProgram" habe ich alle Constraints oder sonstigen größentechnischen Werte deaktiviert.

Kann mir da vielleicht irgendjemand weiterhelfen?

Grüße,
Rüdiger


CenBells - Mo 15.09.03 17:56

hallo,

hast du mal versucht
Mainprogram.maximize;
aufzurufen?

mit deinem aufruf schein nur der Status geändert zu werden, aber nicht die vergößerung selber durchgeführt zu werden.

Gruß
Ken


Motzi - Mo 15.09.03 20:04

Doch, diese Zuweisung führt zu einem Aufruf von ShowWindow mit SW_MAXIMIZE... warum er allerdings nicht richtig maximiert fallt mir jetzt spontan nix ein... :?


Raphael82 - Mo 15.09.03 22:48

Lese per Screen.Width und Screen.Height mal deine Auflösung aus. Wenn da dann 800*600 rauskommt ist es ein Problem mit deiner Auflösung und hat somit nichts mit Delphi zu tun.

MfG, Raphael

P.S.: Ich weiß, das hilft dir nicht viel aber ich finde es immer erstmal wichtig das man weiß woran es denn nun liegt anstatt blind in der Gegend nach Lösungen zu suchen. Vielleicht kannst ja auch mal versuchen ob es bei jedem Programm so ist wie bei dem, welches du gerade geschrieben hast.


Roidsear Ó Ghearmáin - Di 16.09.03 12:36

Raphael82 hat folgendes geschrieben:
Lese per Screen.Width und Screen.Height mal deine Auflösung aus.
[...]


Danke. Habe die Auflösung ausgelesen. 1280 x 1024. Und jetzt geht es.
Keine Ahnung, warum; habe ja nur Werte ausgelesen. Aber jetzt funktioniert es einwandfrei.

Zitat:

P.S.: Ich weiß, das hilft dir nicht viel aber ich finde es immer erstmal wichtig das man weiß woran es denn nun liegt anstatt blind in der Gegend nach Lösungen zu suchen.
[...]

Sehr richtig... ich wüßte ja jetzt auch gerne, warum das auf einmal geht. Vielleicht, weil ich vorher das Screen Objekt angesprochen habe? Wenn ich das Auslesen wieder weglasse, habe ich das gleiche Problem wieder.
Werde das mal im Auge behalten, auch vielleicht bei neuen Grafiktreibern. (ATI Rage 128 Pro)

Danke soweit erstmal...
...Rüdiger


Adrian - Do 18.09.03 00:10

Dia dhuit!

Zwar kann ich Dir auch nicht genau sagen, woher Dein Problem kommt, aber ich empfehle Dir einen Versuch mit meiner Version. Sie hat bislang immer zuverlässig funktioniert und arbeitet ohne explizite Abfrage der Bildschirm-Koordinaten bei allen Auflösungen.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.FormCreate(Sender: TObject);
var
  Hoe: Hwnd;
begin
  Hoe:=FindWindow(nil,'Test-Formular');
//Anstelle von 'Test-Formular' den entsprechenden Fensternamen eingeben
  ShowWindow(Hoe,SW_MAXIMIZE);
end;


Slán,
Adrian

Moderiert von user profile iconTino: Code- durch Delph-Tags ersetzt.


Roidsear Ó Ghearmáin - Do 18.09.03 00:45

Adrian hat folgendes geschrieben:
Dia dhuit!
Slán,
Adrian


Go raibh maith agat, a chara!
...Danke! Das funktioniert auch. Dann kann ich die sinnfreie Screen.Width... Abfrage auch rausnehmen.

Btw...
An bhfuil Gaeilge agat???
Is féidir leat cuir do fhreagair do: roidsear@celtic-lyrics.com
(Sé mo ríomhseoladh eile... ist ja hier schließlich kein Gälisch-Forum... ;) )
Go n-éirí an bóthar leat!

...Slán go fóill,
Rüdiger


Adrian - Fr 19.09.03 11:45

Servus und Dia dhuit!

Níl mórán Gaeilge agam, weswegen ich hier wieder zu vertrautem Terrain zurückkehre. Aber was nicht ist kann noch werden.

Gruß und Slán,

Adrian