AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi 10.2 Firemonkey: TFlowLayout Höhe automatisch ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 10.2 Firemonkey: TFlowLayout Höhe automatisch ändern

Ein Thema von Loko789 · begonnen am 19. Jul 2017 · letzter Beitrag vom 24. Jul 2017
Antwort Antwort
Loko789

Registriert seit: 23. Sep 2015
74 Beiträge
 
#1

Delphi 10.2 Firemonkey: TFlowLayout Höhe automatisch ändern

  Alt 19. Jul 2017, 09:19
Hallo an alle,

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

Gruß
Loko

Geändert von Loko789 (19. Jul 2017 um 09:20 Uhr) Grund: Falscher Titel
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

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

  Alt 19. Jul 2017, 10:18
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.
  Mit Zitat antworten Zitat
Loko789

Registriert seit: 23. Sep 2015
74 Beiträge
 
#3

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

  Alt 19. Jul 2017, 14:16
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.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

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

  Alt 19. Jul 2017, 14:44
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
  Mit Zitat antworten Zitat
Loko789

Registriert seit: 23. Sep 2015
74 Beiträge
 
#5

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

  Alt 20. Jul 2017, 09:52
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, 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.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.479 Beiträge
 
Delphi 11 Alexandria
 
#6

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

  Alt 20. Jul 2017, 22:19
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;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

  Alt 21. Jul 2017, 00:39
Das größte Sichtbare,
und beim FMX muß auch noch der Zoom mit eingerechnet werden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

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

  Alt 21. Jul 2017, 08:12
Und dann auch noch die Rotation einrechnen. Und wer weiß was noch.

Sind dazu nicht fertige Eigenschaften wie BoundsRect da oder verstehe ich etwas falsch?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

  Alt 21. Jul 2017, 08:22
BoundsRect ist einfach nur eine Kompination aus Left, Top, Left+Width und Top+Height.

Aber es gibt da auch irgendwo Funktionen zum Umrechnen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Loko789

Registriert seit: 23. Sep 2015
74 Beiträge
 
#10

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

  Alt 24. Jul 2017, 15:01
Danke für eure Lösungsvorschläge.

Aber eine konkrete Lösung gibt es noch nicht so weit wie ich das jetzt verstanden habe.
  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 16:41 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