Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi 10.2 Firemonkey: TFlowLayout Höhe automatisch ändern (https://www.delphipraxis.net/193340-delphi-10-2-firemonkey-tflowlayout-hoehe-automatisch-aendern.html)

Loko789 19. Jul 2017 09:19


Delphi 10.2 Firemonkey: TFlowLayout Höhe automatisch ändern
 
Hallo an alle,

gibt es eine möglichkeit, dass sich die TFlowLayout Höhe nach dem inhalt richtet?

Gruß
Loko

Der schöne Günther 19. Jul 2017 10:18

AW: Delphi 10.2 Firemonkey: TFlowLayout Höhe automatisch ändern
 
Ich habe keine Option gefunden. Indem man über alle Child Controls iteriert kann man sich selber ausrechnen wie groß das Layout sein müsste damit alles vernünftig reinpasst (ClipChildren muss dafür glaube ich False sein).

Aber man müsste diese Methode immer wieder von Hand aufrufen wenn sich irgendetwas ändert. Ich sehe z.B. kein Event für wenn sich der Inhalt des Layouts ändert.

Loko789 19. Jul 2017 14:16

AW: Delphi 10.2 Firemonkey: TFlowLayout Höhe automatisch ändern
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1377007)
Ich habe keine Option gefunden. Indem man über alle Child Controls iteriert kann man sich selber ausrechnen wie groß das Layout sein müsste damit alles vernünftig reinpasst (ClipChildren muss dafür glaube ich False sein).

Aber man müsste diese Methode immer wieder von Hand aufrufen wenn sich irgendetwas ändert. Ich sehe z.B. kein Event für wenn sich der Inhalt des Layouts ändert.

Danke für die Idee, diese hatte ich auch schon im Kopf, aber ich dachte vielleicht gibt es eine elegantere Lösung.

Der schöne Günther 19. Jul 2017 14:44

AW: Delphi 10.2 Firemonkey: TFlowLayout Höhe automatisch ändern
 
Ich will dich nicht stalken, aber das gleiche nur ohne Flow im Panel hatten wir schon einmal:

http://www.delphipraxis.net/190153-p...iremonkey.html

Loko789 20. Jul 2017 09:52

AW: Delphi 10.2 Firemonkey: TFlowLayout Höhe automatisch ändern
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1377023)
Ich will dich nicht stalken, aber das gleiche nur ohne Flow im Panel hatten wir schon einmal:

http://www.delphipraxis.net/190153-p...iremonkey.html

Ja das ist ein ähnliches Problem,:roll: aber bei einem Floatlayout sind die Elemente nicht immer untereinander, sondern können auch nebeneinander dargestellt werden.
Daher würde es für mich keinen sin machen alle komponenten, die auf dem Layout sind zu zählen und daraufhin eine Höhe zu errechnen. Da ich nicht weiß welche Elemente übereinander sind und welche Nebeneinader.

Harry Stahl 20. Jul 2017 22:19

AW: Delphi 10.2 Firemonkey: TFlowLayout Höhe automatisch ändern
 
Eigentlich brauchst Du ja nur das eine Control, das am Tiefsten steht mit der größten Höhe. Aus der Summe von Top+Height erhältst Du dann den äußersten unteren Rand, der noch angezeigt werden muss und somit die notwendige Höhe Deines FlowLayouts.

Das könnte man z.B. so erledigen:

Delphi-Quellcode:
procedure TForm89.bnResizeFlowLayOutClick(Sender: TObject);
var
  L: Integer; AMax, ABot: Extended;
begin
  AMax := 0;

  for L := 0 to FlowLayout1.ChildrenCount-1 do begin
    ABot := TControl (FlowLayout1.Children[L]).Position.Y + TControl (FlowLayout1.Children[L]).height;
    if ABot > AMax then AMax := ABot;
  end;

  FlowLayout1.Height := AMax;
  FlowLayout1.Repaint;
end;

himitsu 21. Jul 2017 00:39

AW: Delphi 10.2 Firemonkey: TFlowLayout Höhe automatisch ändern
 
Das größte Sichtbare,
und beim FMX muß auch noch der Zoom mit eingerechnet werden.

Der schöne Günther 21. Jul 2017 08:12

AW: Delphi 10.2 Firemonkey: TFlowLayout Höhe automatisch ändern
 
Und dann auch noch die Rotation einrechnen. Und wer weiß was noch.

Sind dazu nicht fertige Eigenschaften wie
Delphi-Quellcode:
BoundsRect
da oder verstehe ich etwas falsch?

himitsu 21. Jul 2017 08:22

AW: Delphi 10.2 Firemonkey: TFlowLayout Höhe automatisch ändern
 
BoundsRect ist einfach nur eine Kompination aus Left, Top, Left+Width und Top+Height.

Aber es gibt da auch irgendwo Funktionen zum Umrechnen.

Loko789 24. Jul 2017 15:01

AW: Delphi 10.2 Firemonkey: TFlowLayout Höhe automatisch ändern
 
Danke für eure Lösungsvorschläge. :-D

Aber eine konkrete Lösung gibt es noch nicht so weit wie ich das jetzt verstanden habe.


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