AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Gibt es eine maximale Formgröße in Delphi ?

Ein Thema von hurzli · begonnen am 2. Dez 2008 · letzter Beitrag vom 2. Dez 2008
Antwort Antwort
hurzli

Registriert seit: 29. Okt 2004
6 Beiträge
 
Delphi 2007 Professional
 
#1

Gibt es eine maximale Formgröße in Delphi ?

  Alt 2. Dez 2008, 15:26
Hallo zusammen !
Da wäre mir eine ganz banale Frage untergekommen, die ich selber nicht beantworten kann:

Gibt es eine maximale Formgröße in Delphi ? (D5/Vista)


Die Aufgabenstellung ist: diverse Fenstereinstellungen bei Änderung zu speichern und bei Programmstart wieder herzustellen. Eigentlich ganz einfach. Nur bei der Formgröße beiße ich mir die Zähne aus. Es gibt die Anforderung, das Fenster auf max. (2 * Screen.DesktopWidth) bzw. (2 * Screen.DesktopHeight) in einem Multi-Monitor System zu begrenzen. Aktuell: bei zwei Monitoren nebeneinander liegt der Desktop in einer Größe von 2624x1200 Pixeln vor.

Will ich einer TForm.Width einen Wert größer als 2636 Pixel zuweisen, bleibt er bei 2636 stehen.
Sichtbar im Debugger (siehe Anhang). Bis zu diesem Wert klappt die Zuweisung, darüber hinaus nicht mehr.
In der Höhe ist es ähnlich. Da liegt die Grenze bei 1212 Pixeln.

Erst hatte ich den Fehler auf meiner Seite gesucht, aber dann doch noch ein Testprogramm geschrieben.
Das verhält sich genauso!



Schon mal vielen Dank im Voraus !
Ich freue mich schon auf Antworten.

Gruß
hurzli


Hier noch ein Stück aus dem Testprogramm als Beispiel:

Delphi-Quellcode:
procedure TForm1.btnWidthMaxClick(Sender: TObject);

var
   OldVal : integer;
   Terminate : boolean;

begin
   Terminate := FALSE;
   OldVal := Self.Width -1;
   while( not ( Terminate )) do
      begin
         if(( OldVal = Self.Width ) or ( Self.Width > 6000 )) then
            Terminate := TRUE // OldVal = Self.Width, Bedingung erfüllt bei 2636 ==> AUSSTIEG !
         else
            begin
               OldVal := Self.Width;
               Self.Width := Self.Width + 1;
            end;
      end;
end;
Analog dazu die Höhenänderung:

Delphi-Quellcode:
procedure TForm1.btnHeightMaxClick(Sender: TObject);

var
   OldVal : integer;
   Terminate : boolean;

begin
   Terminate := FALSE;
   OldVal := Self.Height -1;
   while( not ( Terminate )) do
      begin
         if(( OldVal = Self.Height ) or ( Self.Height > 6000 )) then
            Terminate := TRUE // OldVal = Self.Width, Bedingung erfüllt bei 1212 ==> AUSSTIEG !
         else
            begin
               OldVal := Self.Height;
               Self.Height := Self.Height + 1;
            end;
      end;
end;
Miniaturansicht angehängter Grafiken
unbenannt001_002_144.jpg  
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#2

Re: Gibt es eine maximale Formgröße in Delphi ?

  Alt 2. Dez 2008, 15:34
Ich kann mich dunkel daran erinnern, dass es dieses Verhalten schon vor Urzeiten bei Nicht-Delphi-Programmen gab. Möglicherweise ist die Begrenzung der Fenstergröße von Windows vorgegeben, nämlich als Gesamt-Desktopgröße zuzüglich Fensterrahmen (so dass man den Fensterinhalt auf den gesamten Desktop legen kann und der Rahmen drumherum läuft). Warum sollte man ein Fenster größer machen?
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
hurzli

Registriert seit: 29. Okt 2004
6 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Gibt es eine maximale Formgröße in Delphi ?

  Alt 2. Dez 2008, 15:48
Hi !
Das ging aber schnell!
Ich denke du könntest Recht haben!
Natürlich war ich inzwischen nicht untätig und habe mir einen weiteren Monitor geschnappt. Dadurch hat sich eine neue Desktopgröße ergeben. Und siehe da: der Maximalwert liegt immer bei DesktopHeight + 12 Pixeln. bzw. DesktopWidth + 12 Pixeln.

Da hätte ich auch allein drauf kommen können .

Grüßle
hurzli
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#4

Re: Gibt es eine maximale Formgröße in Delphi ?

  Alt 2. Dez 2008, 16:14
Jupp, OregonGhost hat Recht.

Das hatten wir vor 'ner Weile mal, da wurde ein Programm unter großer Auflösung erstellt und auf einem anderem Rechner mit kleiner Auflösung, als die Formgröße beim Programmierer, wurde alles verzerrt,
da Windows die Größe begrenzte und Delphi dieses leider ignoriert und nicht mit einrechnet (beim erstellen der Komponenten auf der Form)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
hurzli

Registriert seit: 29. Okt 2004
6 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Gibt es eine maximale Formgröße in Delphi ?

  Alt 2. Dez 2008, 17:09
Liegt das dann nicht am TForm.Scaled := TRUE und unterschiedlichen Pixeln pro inch der PCs ?
Da hab' ich mir nämlich auch schon mal einen abgepfriemelt.

Danke für eure Hilfe
hurzli
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#6

Re: Gibt es eine maximale Formgröße in Delphi ?

  Alt 2. Dez 2008, 17:43
Wenn Delphi versucht ein größeres Formular (größer als der Desktop) zu erstellen, dann übergibt es Windows diese Größe und Windows selber kürzt dann entsprechend, das Selbe passiert dann auch noch bei der Fensterposition (viele Controls, wie z.B. Edit, Memo usw., sind auch nur "Fenster") ... außerhalb des Desktops gibt's nicht.

Wann jetzt genau Scaled eingerechnet wird, weiß ich allerdings nicht (also ob erstmal das Formular erstellt und dann scaliert, oder erst die Maße/Positionen scalliert und dann alles erstellt wird)


Damals war es halt so, daß das Programmfenster größer als 1024x768 war (beim Compilieren) und es somit nich auf den knuffigen 15-Zoller drauf paßte (beim Ausführen).
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Gibt es eine maximale Formgröße in Delphi ?

  Alt 2. Dez 2008, 18:09
Wir hatten das Problem umgekehrt: Eine SW von uns sollte beim Kunden auf 22" Widescreens laufen, und der Entwicklungsrechner hatte einen älteren 19" 4:3 TFT. Keine Chance, wir mussten einen entsprechenden Monitor für die Entwicklung anschaffen. Es ist natürlich komfortabler, aber für diesen bislang einmaligen Fall dann doch erstmal recht ärgerlich.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz