TileList image does not align alClient

Hello

I need align "alclient" the images of every the tilelist after the title, but you don't have the option.

I am moving my old code from FMX UI Pack to FNC UI Pack, so the reference is the image below

I am using Delphi 11.3 with latest TMS versions

Hi,

We extended the component with a tipClient option for the image position, the next version will contain the necessary changes.

Thanks

Just to clarify, inside every tileList item you have some elements like: title, description, badge, image and so on....

The idea of your next release is the tipClient option extend the image in "alClient" inside the tileList, but if I have title or description set the image will be below them correct?

In short:
If you have a title then it will take up the remaining space below it, that is correct. If there is a description, it won't be shown.

In detail:
The priority of drawing the individual properties is the following:

  1. Draw the Title if it's a non-empty string at the top. Then in the remaining area:
  2. Position the Control if assigned. If ControlPosition is tcpClient the remaining properties are not painted. Otherwise it's positioned accordingly (top, left, right or bottom). In the area that remains:
  3. Draw the Image if assigned. Follows the same logic as Control.
  4. If there's still area remaining and Description is a non-empty string, then it's painted in that area.
  5. Draw the badge on top of everything.

Given that Title is always at the top, the image will be painted below it.

Perfect, I have one last issue moving my old code from FMXUIPack to FNCUIPack concerning to TileList component.

Sometime I have "argument out of range" onItemclick event as image below.

image

Can you point me in the right direction please?

Attached the next video, apparently the onItemclick does not work with some items.

https://timbralofacil.com/descargas/tilelist.mp4

We'll need to reproduce this somehow on our end to find the reason. If I understand this correctly: the error happens when clicking an item and not in the OnItemClick implementation (meaning if you'd temporarily comment out the code from the OnItemClick, it would still throw the exception)?

Does it happen randomly or is it always the same item? If it's always the same, how is the TTMSFNCTileList configured at that moment? Does this happen only on Android or also on Windows?

Hello

If I comment out the OnItemClick event still throw the exception.

It does not happend randomly, it's always on the same item, the exception presents on Windows and Android.

When do you asked "how TTMSFNCTileList is configured" what exactly do you mean???

On the video I recorded the TTMSFNCTileList is always creating on the fly based on the TileSelected, I used recursive because the idea is my user can navigate to a tree structure retrieved from SQLiteDB on the fly.

  • Parent A
    • subNodeA
      • Item 1
      • Item 2
    • subNode B
      • Item 3
  • Parent B
    • Subnode C
      • SubNode D
        • Item 4

If we took the above tree structure, the idea of TTMSFNCTileList behavior is:

  1. Main TileList shows only two tiles "Parent A" and "Parent B"
  2. If user select Parent A then a new TileList is created with three tiles: "Regresar (back to parent)" , "SubNode A" and "SubNode B"
  3. If user select "Subnode A" then TTMSFNCTileList is recreated to show three tiles: "Regresar (back to parent)" , "Item 1" and "Item 2"
  4. If user select "Subnode B" then TTMSFNCTileList is recreated to show two tiles: "Regresar (back to parent)" , "Item 3"
  5. If user select Parent B then a new TileList is created with two tiles: "Regresar (back to parent)" , "SubNode C"
  6. If user select SubNode C then a new TileList is created with two tiles: "Regresar (back to parent)" , "SubNode D"
  7. If user select SubNode D then a new TileList is created with two tiles: "Regresar (back to parent)" , "Item 4"

Thanks

Hello

I found the issue, on the process of recreate TileList in recursive way I clear items, but prior to do this I did not care about any selected tile, so I use the selecteditemindex = -1 in order to avoid any exception.

Seems you forget to include this in tableview and now on tilelist too.

We are looking for how the component is set up by you (e.g. what properties were changed from the default values). Many times this information is crucial to reproduce a problem but we cannot know if we are not informed about it.

Nonetheless, thank you for the detailed explanation, in this case this is indeed caused by the SelectedItemIndex retaining the previous value before clearing the items. We've applied a fix for this because the TTMSFNCTileList should handle it automatically. The changes will be available in the next update.

Thanks

Now I can see the advantages of moving my old FMX UI Pack code to FNC UI Pack, I was thinking to record a video and show here on forums in order to any other customers see the benefits... at least in my case.