Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Formular soll größer als Screen Res sein (https://www.delphipraxis.net/146599-formular-soll-groesser-als-screen-res-sein.html)

DSCHUCH 23. Jan 2010 13:37


Formular soll größer als Screen Res sein
 
Hallo an alle,

Frage in kurz: wie erzeuge ich ein Formular das breiter ist als die Auflösung des Monitors
(Horizontal - Form.Width > Screen.Width)?


Beschreibung:

ich habe derzeit das Problem das ein Formular, welches ein MDI Child ist auf kleinen Monitoren einfach abgeschnitten wird. Das muß ich aber dringend umgehen, da das MDI-Parent einen Scrollbalken hält. Das MDI-Child selbst soll keinen! Scrollbalken erhalten. Die Struktur kann man sich wie eine Tabelle vorstellen:

Das MDI-Parent ist zB 3000 PX .

Es enthält 3 Spalten (MDI-Childs) mit 1500 PX, 1000 PX und 500 PX breite. (je nach Anwendungsbereich, ist dynamisch)
Die Position (Left der Childs) wird dynamisch errechnet. (Das MDI-Parent erhält wie gesagt Scrollbalken.)
Auf einen Monitor mit 1200PX Auflösung wird nun das erste Child abgeschnitten (bei eben der Breite von 1200-Soll ist 1500), dann entsteht ein leerer Platz (300PX) und dann fängt die 2. Spalte bei Left 1500 korrekt an.

------------------------------------------------
|
|
MDI CHILD 1 | MDI CHILD 2 (POSITION IST DURCH DIE BREITE VON CHILD 1 BERECHNET)
|
wird abgeschnitten |
|
<--------------scroll-mdi parent--------------->
------------------------------------------------


Ich muß also ein Formular erzeugen mit Width>Screen.Width.

Danke für Tips. ;o)

Daniel.

Luckie 23. Jan 2010 13:49

Re: Formular soll größer als Screen Res sein
 
Dann gib das doch einfach an. Die breite kann bis maximal ca. 32000 Pixel betragen. das sollte ja wohl reichen.

DSCHUCH 23. Jan 2010 17:35

Re: Formular soll größer als Screen Res sein
 
Hy Lucki,

teste mal Deinen eigenen Tipp :-) ;-)


Einfach Delphi->neue Anwendung.

-------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
Width:=2500;
ShowMessage(IntToStr(Width));
end;
-------------------------------------------

Resultat: 1296 (1280+Border/Rand des Forms - 2*8 Pixel mit meinem Design)


PS: Win 7

Bernhard Geyer 23. Jan 2010 17:39

Re: Formular soll größer als Screen Res sein
 
Zitat:

Zitat von DSCHUCH
Ich muß also ein Formular erzeugen mit Width>Screen.Width.

Geht nicht. Wird von Windows verhindert!

Da müsste schon der Grafikkartentreiber eine virtuelle Auflösung bereitstellen die größer ist als die tatsächliche Bildschirmauflösung und diese dann als scrollbare Area bereitstellen.

himitsu 23. Jan 2010 18:20

Re: Formular soll größer als Screen Res sein
 
Zitat:

Zitat von Bernhard Geyer
Geht nicht. Wird von Windows verhindert!

Hierbei gibt es auch noch ein weiteres Problem:

Die Anchors seitens Delphi werden erst nach dem Erstellen der Form auf die "erstellte" Form gerechnet.
Ist nun die Form zur Designtime größer, als die maximale Größe der Form, welche zur Runtime erstellt werden konnte,
dann sind alle Elemente, welches Rechts/Unten angeordnet sind, falsch positioniert,
da Delphi die von Windows begrenzte Größe nicht beachtet.

DSCHUCH 24. Jan 2010 13:52

Re: Formular soll größer als Screen Res sein
 
Ja - dieses Problem hätte ich später noch angesprochen....
Danke, auch für die schlechte Nachricht, ich werde versuchen es irgendwie zu lösen.

Daniel.

toms 24. Jan 2010 14:39

Re: Formular soll größer als Screen Res sein
 
Zitat:

Zitat von Bernhard Geyer
Geht nicht. Wird von Windows verhindert

Geht schon: WM_GETMINMAXINFO abfangen und MinMaxInfo.ptMinTrackSize.X setzen.

DSCHUCH 24. Jan 2010 15:25

Re: Formular soll größer als Screen Res sein
 
ah, super, nach sowas suche ich gerade. es muß ja irgendwo festgelegt werden.

danke.


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