AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Anchors fehlerhaft / Komponente länger als Form
Thema durchsuchen
Ansicht
Themen-Optionen

Anchors fehlerhaft / Komponente länger als Form

Ein Thema von TheMiller · begonnen am 17. Jul 2009 · letzter Beitrag vom 22. Jun 2010
Antwort Antwort
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#1

Anchors fehlerhaft / Komponente länger als Form

  Alt 17. Jul 2009, 11:50
Hallo,

ich habe hier ein Problem mit der Anchors-Eigenschaft. Und zwar habe ich eine PageControl-Komponente, die zwischen Menü und Statusleiste sitzt und zu allen Komponenten bzw. allen Seiten 10px Abstand hat (ungefähr). Da die User das Programm vergrößern dürfen / sollen, hat diese Komponente alle Anchors gesetzt bekommen (links, rechts, oben, unten).

Auf meinem Notebook / Desktop-PC funktioniert das vergrößern und verkleinern super. Probleme macht das Netbook. Das Programm bekomm bei eine Netbook-Auflösung eine spezielle Größe, die auch eingehalten wird. Die PageControl wird auch etwas verkleinert, aber nicht genug. Sie ist so lang, dass sie hinter der Statusbar verschwindet.

Wird die Form vergrößert oder verkleinert, wird die PageControl das auch - die Anchors scheinen zu greifen. Dennoch ist die Komponente zu groß (ca 50px) und wird somit abgeschnitten.

Beim Start prüfe ich, ob die Auflösung des PCs kleiner als 800 ist und setze so die Größe des Programms fest. Hier noch etwas Code:

Delphi-Quellcode:
Form1.Left:=ini.ReadInteger('Position', 'Left', 0);
    Form1.Top:=ini.ReadInteger('Position', 'Top', 0);
    Form1.Width:=ini.ReadInteger('Position', 'Width', 972);
    if (Screen.Height < 800) then // NetBook-Res
      //Form1.Height:=ini.ReadInteger('Position', 'Height', Screen.Height-60)
      Form1.Height:=ini.ReadInteger('Position', 'Height', 560)
    else
      Form1.Height:=ini.ReadInteger('Position', 'Height', 614);
Für Form1 habe ich auch Constrains gesetzt: MinHeight = 530 | MinWidth = 956

Ich hoffe ihr habt verstanden, was mein Problem ist und könnt mir helfen.

Vielen Dank im Voraus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Anchors fehlerhaft / Komponente länger als Form

  Alt 17. Jul 2009, 12:02
ist die Anwendung mit einer größeren Auflösung kompiliert, als auf den Laptopdesktp paßt?

Dann wird schon beim erstellen der Vorm diese von Windows beschnitten, und leider behandelt dieses Delphi nicht .

Lösung: erstelle/compiliere die Form kleiner und vergrößere sie auf größeren Monitoren.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#3

Re: Anchors fehlerhaft / Komponente länger als Form

  Alt 17. Jul 2009, 12:28
Tatsache...

So funktioniert's prima. Daran hätte ich im Leben nicht gedacht. Hab alle Komponenten durchgeprüft, ob diese die Verkleinerung blockieren etc.

Super. Vielen Dank.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Anchors fehlerhaft / Komponente länger als Form

  Alt 17. Jul 2009, 13:15
Nja, das Problem ist, daß man kein Fenster "Window" erstellen kann, welches größer ist, als der Desktop.
Leider versucht dieses Delphi aber, wird von Windows beschnitten, fragt selber die aktuelle Größe nicht nochmals ab und platziert dann die Komponenten so auf der Form, wie es in der Resource angegeben wurde, auch wenn das Fenster nun kleiner ist ... tja, und die Anchors reagieren nunmal auf die aktuelle Größe und nicht die gewollte.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Anchors fehlerhaft / Komponente länger als Form

  Alt 17. Jul 2009, 14:09
Hallo DJ-SPM,

ich hätte einen anderen Vorschlag, setz .Scaled auf false.
Bei True und einem Auflösungswechsel versucht Delphi die Oberfläche anzupassen und das geht meist in die Hose.

Gruß
K-H
  Mit Zitat antworten Zitat
DerDan

Registriert seit: 15. Nov 2004
Ort: Donaueschingen
251 Beiträge
 
Delphi XE3 Professional
 
#6

AW: Re: Anchors fehlerhaft / Komponente länger als Form

  Alt 22. Jun 2010, 10:08
Hallo DJ-SPM,

ich hätte einen anderen Vorschlag, setz .Scaled auf false.
Bei True und einem Auflösungswechsel versucht Delphi die Oberfläche anzupassen und das geht meist in die Hose.

Gruß
K-H
Prima, so geht das!

mfg
nichts ist so schön wie man es sich vorstellt
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Re: Anchors fehlerhaft / Komponente länger als Form

  Alt 22. Jun 2010, 10:13
Hallo DJ-SPM,

ich hätte einen anderen Vorschlag, setz .Scaled auf false.
Bei True und einem Auflösungswechsel versucht Delphi die Oberfläche anzupassen und das geht meist in die Hose.

Gruß
K-H
Prima, so geht das!
Und dann den armen Laptop-Mitarbeiter mit 144dpi mit sehr kleinen Dialogen ärgern.

Delphi-Programme kann man wunderbar auch mit Scaled=True skalierbar und für große DPI-Auflösungen designen. Mann muss "nur" an 1-2 Stellen aufpassen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  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:50 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