![]() |
Objekte auf ScollView platzieren
Guten Abend,
ich bin gerade auf folgendes Problem gestoßen: in einer Schleife platziere ich ein paar Views auf einem ScrollView. Die Content-Höhe wächst dynamisch mit (
Delphi-Quellcode:
). Wenn jetzt aber der Y-Wert unter dem sichtbaren Bereich liegt, dann wird das Objekt einfach bei (0|0) angezeigt.
ScrollView.setContentSize(CGSizeMake(FWidth,FLastY))
So erstell ich den ganzen Kram:
Delphi-Quellcode:
Jemand eine Idee wie ich das lösen kann?
Row:= TTMSFMXNativeUIView.Create(FContainer);
with Row do begin Parent:= FContainer; Width:= ROW_WIDTH; Height:= ROW_HEIGHT; Position.X:= START_X; Position.Y:= FLastY; end; with TTMSFMXNativeUILabel.Create(Row) do begin Parent:= Row; Align:= TAlignLayout.alMostLeft; Alignment:= TTextAlign.taCenter; Width:= 20; Text:= 'Test'; Font.Size:= 14; end; {usw...} Viele Grüße Croco |
AW: Objekte auf ScollView platzieren
Liste der Anhänge anzeigen (Anzahl: 2)
Bei solchen Angelegenheiten verwende ich gerne ein TPanel (Panel.top := 0; Panel.Left := 0), das sich in der Breite dem Scrollview anpaßt (Panel.Width := ScrollView.ClientWidth; Panel.Anchors := [akLeft,akTop,akRight]) und in der Höhe der Anzahl der zu platzierenden Komponenten. Dabei werden die Komponenten, die bei dir Views heißen, jedesmal neu platziert, wenn sich die Größe des TPanels ändert (OnResize). Dazu ist natürlich etwas Rechenarbeit erforderlich, aber so funktioniert es einwandfrei.
|
AW: Objekte auf ScollView platzieren
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Im Anhang habe ich mal ein Testprojekt rein gepackt, dass 10 Buttons auf einem View erstellt, das Ergebnis seht ihr auch unten. Der Code:
Delphi-Quellcode:
Viele Grüße
procedure TForm1.TMSFMXNativeUIButton1Click(Sender: TObject);
var n: Integer; Y: Integer; begin Y:=0; for n:= 0 to 9 do begin with TTMSFMXNativeUIButton.Create(View1) do begin Parent:= View1; Position.Y:= Y; Position.X:= 50; Text:= 'Button Nr.'+n.ToString(); end; Inc(Y,40); end; end; Croco |
AW: Objekte auf ScollView platzieren
Liste der Anhänge anzeigen (Anzahl: 1)
Das weiß ich ;-)
Abgesehen davon dass du keine ScrollView auf dem Form hast fehlt das
Delphi-Quellcode:
Initialize;
Delphi-Quellcode:
Habs Dir auch mal hochgeladen.
procedure TForm1.TMSFMXNativeUIButton1Click(Sender: TObject);
var n: Integer; Y: Integer; orgHeight: double; begin Y:=0; orgHeight := scrollView1.Height; for n:= 0 to 9 do begin View1.Height := (n+1)*40; View1.Initialize; scrollView1.Height := (n+1)*40; scrollView1.Initialize; with TTMSFMXNativeUIButton.Create(View1) do begin Parent:= View1; Position.Y:= Y; Position.X:= 50; Text:= 'Button Nr.'+n.ToString(); Initialize; end; Inc(Y,40); end; scrollView1.Height := orgHeight; end; |
AW: Objekte auf ScollView platzieren
Ahaaa, das muss man auch noch machen :stupid:
Vielen Dank!!! :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10: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