AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Delphi 11 (Patch 1) zerstört Formulare
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 11 (Patch 1) zerstört Formulare

Ein Thema von sh17 · begonnen am 8. Nov 2021 · letzter Beitrag vom 9. Nov 2021
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

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

AW: Delphi 11 (Patch 1) zerstört Formulare

  Alt 8. Nov 2021, 12:39
Ich habe das Form hier in Delphi 11 (Patch 1) geöffnet und der Button steht auf Left = 904. Das Form hat Width = 1030.

Delphi 11 ist normal (also ohne /highdpi:unaware) gestartet und läuft auf einer Skalierung von 150%. Der Formular-Designer steht im High-DPI-Modus Automatisch.

Button etc rechts-ausgerichtet, also Align alRight
Der hat aber auch nicht Align = alRight, sonder Anchors = [akTop, akRight]. Aber auch das bewirkt hier nicht die beschriebene Verschiebung (Scaled ist immer noch False).

Ich wüsste nur gern, welche Kombination das auslöst.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.687 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Delphi 11 (Patch 1) zerstört Formulare

  Alt 8. Nov 2021, 13:09
Ja ich meine natürlich Anchors = [akTop, akRight] hab heute früh wohl noch gepennt

Der Formular-Designer steht im High-DPI-Modus Automatisch.
Bei mir stand der Wert auf Low DPI (96 ppi) Habs auf Automatisch gestellt, Hat trotzdem keinen Einfluss.

Nur wenn ich Scaled auf true setzen und dann das Formular lade, funktioniert alle richtig.
Sven Harazim
--

Geändert von sh17 ( 8. Nov 2021 um 13:15 Uhr)
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
776 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Delphi 11 (Patch 1) zerstört Formulare

  Alt 8. Nov 2021, 14:45
Ja ich meine natürlich Anchors = [akTop, akRight] hab heute früh wohl noch gepennt

Der Formular-Designer steht im High-DPI-Modus Automatisch.
Bei mir stand der Wert auf Low DPI (96 ppi) Habs auf Automatisch gestellt, Hat trotzdem keinen Einfluss.

Nur wenn ich Scaled auf true setzen und dann das Formular lade, funktioniert alle richtig.
Das ist bei mir auch wie du es beschreibst. D11 skaliert den Button in die Weiten des Alls . - Und: Ich hatte auch gepennt... du hattest ja (in der Überschrift) geschrieben, dass Patch1 bereits installiert sei.
Michael Gasser
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi 11 (Patch 1) zerstört Formulare

  Alt 8. Nov 2021, 14:56
Mit Anchors gab es schon immer Probleme.

Die Form wird schon beim Erstellen scaliert/beschnitten,
danach kommen die Komponenten drauf und dann vergisst Delphi zu schaun ob die erstellte Größe der gewollten Größe entspricht.

Eine Lösung war bisher: ein Panel hinter alles, mit Align=client, und da dann alles rein
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#5

AW: Delphi 11 (Patch 1) zerstört Formulare

  Alt 8. Nov 2021, 17:04
Mit Anchors gab es schon immer Probleme.
Wenn dem so ist dann ist es ein Armutszeugnis seitens der Entwickler von Delphi.
Wenn eins der wichtigsten Dinge zum erstellen von Formularen nicht funktioniert unabhängig vom High DPI.
Sorry mußte mal gesagt werden.

In meiner Engine war es das erste was ich in Angriff genommen habe.
Zitat:
Eine Lösung war bisher: ein Panel hinter alles, mit Align=client, und da dann alles rein
Traurig!

Geändert von venice2 ( 8. Nov 2021 um 17:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi 11 (Patch 1) zerstört Formulare

  Alt 8. Nov 2021, 17:39
An HighDPI war damals noch nichtmal zu denken, als es damit anfing.

Alleine die unterschiedlich breiten Rahmen zwischen den unterschiedlichen Windowsversionen reichten schon aus.
Später wurde dann zwar ClientHeight/ClientWidth anstatt Height/Width (inkl. Rahmen) gespeichert,
aber nachdem man vor 'ner Weile da auch wieder dran rumfummelte und nun mal das Eine oder das Andere speichert, raucht es nun bei FormularVererbung wieder ab und die 2 fertigen extrem einfachen Zeilen Code, als Bugfix wurden abgelehnt, mit der Begründung, dass angeblich alles OK sei,
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
776 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Delphi 11 (Patch 1) zerstört Formulare

  Alt 9. Nov 2021, 09:40
Mit Anchors gab es schon immer Probleme.

Eine Lösung war bisher: ein Panel hinter alles, mit Align=client, und da dann alles rein
Zum Glück arbeite ich nicht mit Anchors . Wenn meine Fenster in der Grösse verändert werden dürfen, setze ich die Positionen und nicht Delphi.

Ich habe deinen Tipp probiert. mit dem Panel und alles drauf. Geht hier nicht. Der Button wandert genau gleich.

Bei meinem System (1920x1080, 125%) wandert der Button um eine Konstante [bei anderen % Werten ebenfalls um eine Konstante].

Bei meinem System und Svens Beispiel (siehe #9):
125%: Der Button wandert um 386 nach rechts
150%: Der Button wandert um 390 nach rechts
175%: Der Button wandert um 392 nach rechts

Die Konstante ist nur abhängig von clientwidth. Die neue Position berechnet Delphi 11 (hier für: 1920x1080, 125%)
Button.Left(neu) = Button.Left(alt) + (clientwidth-622)
"Lösung": Bei meinem System gilt also: Setze clientwidth auf 622 und der Button läuft nicht davon .

Wenn ich alle TabSheets lösche, dann wandert der Button nicht.

Ich nehme an, dass emba das rasch fixen kann.

Faszinierend.
Michael Gasser

Geändert von Michael II ( 9. Nov 2021 um 13:09 Uhr)
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Delphi 11 (Patch 1) zerstört Formulare

  Alt 9. Nov 2021, 10:37
Mal abgesehen von den aktuellen Problemen mit Delphi 11 muss ich doch mal eine Lanze brechen für die Anker im Allgemeinen. Der Aussage, dass diese grundsätzlich nicht funktionieren, muss ich nach meiner Erfahrung klar widersprechen. Ich finde es sogar mehr als angenehm, dass ich mich in Resize-Events nicht um solche Sachen kümmern muss. Alle Elemente, die rechts oder unten angetackert (verankert) sind, wandern da auch artig mit, wenn das Eltern-Element in seiner Größe verändert wird.
Ich will niucht ausschließen, dass es (jenseits von D11) Spezialfälle gibt, in denen die Anker nicht wollen - aber das wird die klare Minderheit der Anwendungsfälle sein.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

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

AW: Delphi 11 (Patch 1) zerstört Formulare

  Alt 9. Nov 2021, 10:46
Ich möchte mich Daniel da anschließen. In der Regel funktionieren Anchor wie sie sollen. Bei D11 gibt es wegen des skalierenden Form-Designers noch Probleme. Wir gehen davon aus, dass diese mit dem Update 1 behoben sein werden.

Bei all den Problemen, die in diesem Forum sicher zu recht geschildert werden, muss man immer die große Masse an problemfreien Anwendungsfällen im Hinterkopf haben, die sich naturgemäß hier nicht zu Wort melden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
498 Beiträge
 
Delphi 12 Athens
 
#10

AW: Delphi 11 (Patch 1) zerstört Formulare

  Alt 8. Nov 2021, 13:28
Ich habe gerade überprüft, ob die Dateien vom Patch1 auch kopiert wurden.
Das scheint zu stimmen.

Allerdings hatte ich auch noch ältere Versionen in VirtualStore gefunden und gelöscht.

Komischer Weise werden diese immer wieder dort erstellt???

C:\Users\...\AppData\Local\VirtualStore\Program Files (x86)\Embarcadero\Studio\22.0\bin\vcldesigner280.b pl
C:\Users\...\AppData\Local\VirtualStore\Program Files (x86)\Embarcadero\Studio\22.0\bin\rtl280.bpl

Diese sind identisch zu denen unter Programme (x86).
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:39 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