Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
3.926 Beiträge
 
Delphi 12 Athens
 
#4

AW: Fmx ListBox Darstellungsfehler als Tile

  Alt 11. Jul 2015, 08:40
Hallo Harry,

dankesehr für den entscheidenden Tip, manchmal sieht man den Wald vor Bäumen nicht
Das muss ich in deinem XE7-Buch wohl überlesen haben, da sind auf jeden Fall jede Menge gute Tips für VCL-FMX Umsteiger wie mich drin.
Ich freue mich schon auf die nächste Ausgabe.

Eigentlich bin davon ausgegangen das die Bilder schon gross genug wären.
Also werden die Bilder wahrscheinlich intern noch mit dem Retina ScreenScale Faktor verkleinert ?

Das sollte dann auch direkt mit der ImageList ohne Verrenkungen funktionieren ?
Das werde ich gleich mal ausprobieren, wäre ja dann endlich das was ich eigentlich möchte.

Welche Empfehlung gibt es es denn wohl für eine Mindestgröße damit es aus allen Plattformen korrekt aussieht ?
Der ScreenScale Faktor kann ja im Moment bis zu 3 sein.

Ergebnis:
Nach dem Test bekomme ich das leider immer noch nicht so hin wie in deinem Anhang:

Ich habe die Größe in der ImageList schrittweise auf 512x1512 erhöht.
clipboard07.jpg
Ich war mir aber gar nicht sicher ob diese Stelle überhaupt immer für die Bildgröße verantwortlich ist, oder ob das nur für das Speichern
benutzt wird (darauf hat es jedenfalls Einfluss).

Danach wird der Screenshot im 1sten ListItem dasImage immer noch als Tile gezeichnet (auf z.B. IOS Simulator).
Aber jedenfalls ist das Image jetzt schonmal größer, ohne die ganzen OnApplyLookup Verrenkungen.
clipboard06.jpg

Das 2. ImageListItem habe ich mit Width Height noch vergrößert, aber das vergrößert nur das Ganze Glyph, und das Image bleibt
fitted im ListBoxItem, so wie gedacht.

Im 3. habe ich mal an den Margins rumgespielt (so würde ich das normalerweise nicht machen), es tut aber auch nicht so wie erwartet.

Code:
    if (Sender as TListBoxItem).Index = 1 then
    begin
      sImg.Width := 128;
      sImg.Height := 128;
    end;

    if (Sender as TListBoxItem).Index = 2 then
    begin
      sImg.Margins.Left  := -20;
      sImg.Margins.Right := 20;
      sImg.Margins.Top   := -20;
      sImg.Margins.Bottom := 20;
    end;
Die Tiles sind aber in keinem Fall weg, was könnte hier noch anders ein ?
Wie gesagt, die Tiles sehe ich nur unter iOS, iOS Simulator und Android.
Wie hast du das wegbekommen ?


Rollo

Geändert von Rollo62 (11. Jul 2015 um 08:46 Uhr)
  Mit Zitat antworten Zitat