Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   iOS Objekte auf ScollView platzieren (https://www.delphipraxis.net/178411-objekte-auf-scollview-platzieren.html)

Crocotronic 6. Jan 2014 18:46

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:
ScrollView.setContentSize(CGSizeMake(FWidth,FLastY))
). Wenn jetzt aber der Y-Wert unter dem sichtbaren Bereich liegt, dann wird das Objekt einfach bei (0|0) angezeigt.

So erstell ich den ganzen Kram:
Delphi-Quellcode:
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...}
Jemand eine Idee wie ich das lösen kann?

Viele Grüße
Croco

Perlsau 6. Jan 2014 21:37

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.

Crocotronic 8. Jan 2014 16:35

AW: Objekte auf ScollView platzieren
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von Perlsau (Beitrag 1242463)
die bei dir Views heißen

Da liegt das Probleme: es sind Views und keine Panels :P
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:
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;
Viele Grüße
Croco

Darlo 9. Jan 2014 11:13

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:
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;
Habs Dir auch mal hochgeladen.

Crocotronic 9. Jan 2014 15:18

AW: Objekte auf ScollView platzieren
 
Ahaaa, das muss man auch noch machen :stupid:
Vielen Dank!!! :thumb:


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