AGB  ·  Datenschutz  ·  Impressum  







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

VCL Skalierungsproblem

Ein Thema von TurboMagic · begonnen am 24. Aug 2021 · letzter Beitrag vom 25. Aug 2021
Antwort Antwort
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.815 Beiträge
 
Delphi 12 Athens
 
#1

VCL Skalierungsproblem

  Alt 24. Aug 2021, 15:10
Hallo,

gegeben: D10.4.2 und eine VCL Form.
Auf dieser sind ein Panel welches top aligned ist und dieses enthält ein TEdit
und ein TButton rechts neben dem Edit.

Das Edit ist oben links und rechts verankert, der Button ist oben rechts verankert.
Zieht man das Fenster breiter passt alles. Das Edit wird breiter und der Button
bleibt rechts neben dem Edit ohne zu überlappen.

Rufe ich jedoch im Constructor der Form ScaleBy(125, 100) auf, wird das TEdit
viel zu breit und der Button über das Edit platziert.

Vorher:
Form.Width: 813
Edit.Left: 192
Edit.Width: 554
Button.Left: 752

Nach ScaleBy:
Form.Width: 1012
Edit.Left: 240
Edit.Width: 892
Button.Left: 940

Warum wird hier der Button so viel zu viel verbreitert?
554 * 1,25 sind ja 692 und nicht 892...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: VCL Skalierungsproblem

  Alt 24. Aug 2021, 15:32
Wieso rufst du ScaleBy selbst auf?
Das macht so alles die VCL selbst im Ablauf?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.995 Beiträge
 
Delphi 12 Athens
 
#3

AW: VCL Skalierungsproblem

  Alt 24. Aug 2021, 15:53
Warum wird hier der Button so viel zu viel verbreitert?
Du meinst das TEdit und nicht den Button, oder? Die Breite wird einmal durch das ScaleBy skaliert und dann noch wegen des rechten Anchors an die veränderte Breite des Forms angepasst. Eventuell hilft ein Kapseln in Disable-/EnableAlign.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.815 Beiträge
 
Delphi 12 Athens
 
#4

AW: VCL Skalierungsproblem

  Alt 25. Aug 2021, 10:26
Hallo,

1. Ja, ich meine das TEdit. Sorry!

2. Es gibt in meiner Anwendung eine Option einen extra vergrößerten GUI Modus zu aktivieren,
für bessere Touch Bedienung. Wenn der aktiv ist, wird das ScaleBy aufgerufen, sonst nicht.

=> ich muss die Breite in dem Fall wohl selber justieren. Das probiere ich mal aus.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.995 Beiträge
 
Delphi 12 Athens
 
#5

AW: VCL Skalierungsproblem

  Alt 25. Aug 2021, 10:39
Interessanterweise kann ich den beschriebenen Effekt hier mit einer simplen VCL-Anwendung unter 10.4.2 nicht reproduzieren.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.815 Beiträge
 
Delphi 12 Athens
 
#6

AW: VCL Skalierungsproblem

  Alt 25. Aug 2021, 10:43
Ich habe die Breite des Edit im falle des ScaleBy nach dem ScaleBy Aufruf manuell geändert.
Das funktioniert jetzt, habe aber noch ein anderes Problem gefunden. => neuer Thread
  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 22:04 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