Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   D11 FMX TGridPanelLayout (oder: was rauchen die bei Embarcadero.... (https://www.delphipraxis.net/209228-d11-fmx-tgridpanellayout-oder-rauchen-die-bei-embarcadero.html)

friedt99 12. Nov 2021 20:16

D11 FMX TGridPanelLayout (oder: was rauchen die bei Embarcadero....
 
Hallo Zusammen,

bin ich nur zu blöd, oder gibt es eine "Trick" um in einem TGridLayoutPanel die
Prozentzahlen "vernünftig" einzustellen.

Wenn ich aus den standardmäßigen 2 Zeilen (oder Spalten) 4 mache, mit jeweils 25%,
dann muss ich gefühlt hundert mal alle 4 markierten Angaben mit 25 überschreiben um
nur annähern auf 25% je Zeile / Spalte zu kommen.

Das kann doch nicht ernst gemeint sein, bei einem Produkt für knappe 5000€...

Für Tipps bin ich immer offen.

Grüße

Thomas

Uwe Raabe 12. Nov 2021 22:44

AW: D11 FMX TGridPanelLayout (oder: was rauchen die bei Embarcadero....
 
Gib mal 0 ein statt 25.

friedt99 13. Nov 2021 10:58

AW: D11 FMX TGridPanelLayout (oder: was rauchen die bei Embarcadero....
 
Ja, das klappt.

Wenn man alle Prozente auf 0 setzt dann kommen gleichverteilte Zahlen raus.

Wenn ich mich dann aber doch umentscheide und aus einer 25% dann 40% mache
dann gehen die anderen nicht auf 20% sondern es kommt was schräges dabei raus.

Und dann kommt es eben dazu, dass man ewig rumeiert bis man so in etwa die zahlen
hat, die man möchte.

Uwe Raabe 13. Nov 2021 13:09

AW: D11 FMX TGridPanelLayout (oder: was rauchen die bei Embarcadero....
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von friedt99 (Beitrag 1497500)
Wenn ich mich dann aber doch umentscheide und aus einer 25% dann 40% mache
dann gehen die anderen nicht auf 20% sondern es kommt was schräges dabei raus.

Wenn alle Spalten 25% haben und du eine Spalte davon auf 40% ändern willst, musst du dort eine 50 eingeben. (Klingt komisch, ist aber so)

Grund ist die etwas abwegige Implementierung der Prozentaufteilung. Die rechnet erstmal alle Prozentwerte zusammen. Kommt dabei 0 heraus, wird gleichmäßig aufgeteilt. Andernfalls werden die Prozentzahlen so skaliert, dass die Summe 100 ergibt.

Sei akt der aktuelle Prozenzwert und neu der gewünschte, dann errechnet man den einzugebenden Wert x mit
Delphi-Quellcode:
x := neu*(100 - akt)/(100-neu);
Damit bekommt die aktuelle Spalte den gewünschten Wert und die anderen werden im aktuellen Verhältnis angepasst.

Das funktioniert aber schon bei zwei zu ändernden Spalten nicht mehr.

Aktuell ist das aber nur ein Problem für FMX. In der VCL-Version TGridPanel gibt es ein Kontextmenü, mit dem man die automatische Neuberechnung unterdrücken kann, bis man alle Prozentzahlen richtig eingegeben hat. Vielleicht schreibt einer einen QP-Report, damit diese Funktionalität auch in der FMX-Version umgesetzt wird?


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