OK. Mir ist kein besserer Titel eingefallen.
Man nehme eine Scrollbox.
Auf diese Scrollbox wir ein TRectangle erzeugt.
Auf diese TRectangle sollen 1..n Images erzeugt werden, die Text und Grafiken enthalten.
Unter
Win32 funktioniert das so...
Delphi-Quellcode:
MyRect := TRectangle.Create(Scollbox1);
MyRect.Parent := Scrollbox1;
MyRect.Width := 768;
MyRect.Height := 0; // !!
MyRect.Position.X := 0;
MyRect.Position.Y := NextYPos;
IMG := TImage.Create(MyRect);
IMG.Parent := MyRect;
IMG.Position.X := LeftFromDatenbank;
IMG.Position.Y := TopFromDatenbank;
MakeBMPInhalt(bla bla bla); // Setzt nach der Berechnung auch die Höhe des Images
if MyRect.Height < IMG.Position.Y+IMG.Height then
MyRect.Height := IMG.Position.Y+IMG.Height+2;
Unter iOS sind die Positionen des IMG absolut durcheinander.
Und alles ist zu klein, da die doppelte Retina Auflösung nicht berücksichtig wird. Das könnte man ja noch ändern...
Wenn man aber:
Delphi-Quellcode:
IMG := TImage.Create(MyRect);
MakeBMPInhalt(bla bla bla); // Setzt nach der Berechnung auch die Höhe des Images
if MyRect.Height < IMG.Position.Y+IMG.Height then
MyRect.Height := IMG.Position.Y+IMG.Height+2;
IMG.Parent := MyRect;
IMG.Position.X := LeftFromDatenbank;
IMG.Position.Y := TopFromDatenbank;
Und schon stimmen alle Koordinaten und beim "IMG.Parent" wird die Grafik gemäß Retina Auflösung skaliert!!! Macht alles unscharf.
Jetzt stehe ich vor dem Huhn/Ei Problem. Ich kann die Höhe des TRectangle nicht vorher setzen, da die erst berechnet werden muss... Ich muss aber das IMG vorher zuweisen, damit im nachhinein nicht eine Skalierung durchgeführt wird...
Ich werde weiter testen...
Mavarik