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
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?