AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Objekte auf ScollView platzieren

Ein Thema von Crocotronic · begonnen am 6. Jan 2014 · letzter Beitrag vom 9. Jan 2014
Antwort Antwort
Crocotronic

Registriert seit: 9. Mai 2013
258 Beiträge
 
#1

Objekte auf ScollView platzieren

  Alt 6. Jan 2014, 18:46
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 (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
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

AW: Objekte auf ScollView platzieren

  Alt 6. Jan 2014, 21:37
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.
Miniaturansicht angehängter Grafiken
templates1.jpg   templates2.jpg  
  Mit Zitat antworten Zitat
Crocotronic

Registriert seit: 9. Mai 2013
258 Beiträge
 
#3

AW: Objekte auf ScollView platzieren

  Alt 8. Jan 2014, 16:35
die bei dir Views heißen
Da liegt das Probleme: es sind Views und keine Panels
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
Miniaturansicht angehängter Grafiken
img_4029.jpg  
Angehängte Dateien
Dateityp: zip UIViewDyn.zip (6,5 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: Objekte auf ScollView platzieren

  Alt 9. Jan 2014, 11:13
Das weiß ich

Abgesehen davon dass du keine ScrollView auf dem Form hast fehlt das 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.
Angehängte Dateien
Dateityp: zip UIViewDyn_new.zip (8,5 KB, 2x aufgerufen)
Philip
  Mit Zitat antworten Zitat
Crocotronic

Registriert seit: 9. Mai 2013
258 Beiträge
 
#5

AW: Objekte auf ScollView platzieren

  Alt 9. Jan 2014, 15:18
Ahaaa, das muss man auch noch machen
Vielen Dank!!!
  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 08:39 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