tableview issue at rotating on iOS with detailview controls assigned

What happend?

Hi,

We have further investigated this here but unfortunately we were not able to reproduce the access violation. Please provide a proper sample, step by step instructions on how to reproduce the issue. It could be a control issue, or an application issue, if so we still need to know the exact properties and steps to reproduce.

You need to code a sample where it's a main tableview with al least 10 items, 7 of them specify "detailcontrol" property that point to another controls like TMSFMXEdit or TMSTableView inside.

Once you entered on a detail item and use the gyroscope you will see the access violation.

I use the next code on the main TableView for show or hide controls

procedure TablaFinalizarTransaccionItemClick(Sender: TObject;
AItem: TTMSFMXTableViewItem);
begin
Case AItem.Tag of
// Días de Crédito
0:
Begin
ListaMoneda.Visible := False;
TipoCambio.Visible := False;
ImportePago.Visible := False;
ListaFormaPago.Visible := False;
ListaEmail.Visible := False;
ListaUsuarios.Visible := False;
Observaciones.Visible := False;
PlazoPago.SetFocus;
End;
// Moneda
1:
Begin
PlazoPago.Visible := False;
TipoCambio.Visible := False;
ImportePago.Visible := False;
ListaFormaPago.Visible := False;
ListaEmail.Visible := False;
ListaUsuarios.Visible := False;
Observaciones.Visible := False;
End;
// Tipo de Cambio
2:
Begin
PlazoPago.Visible := False;
ImportePago.Visible := False;
ListaMoneda.Visible := False;
ListaFormaPago.Visible := False;
ListaEmail.Visible := False;
ListaUsuarios.Visible := False;
Observaciones.Visible := False;
TipoCambio.SetFocus;
End;
// Vendedor
3:
Begin
PlazoPago.Visible := False;
ImportePago.Visible := False;
ListaMoneda.Visible := False;
TipoCambio.Visible := False;
ListaFormaPago.Visible := False;
ListaEmail.Visible := False;
Observaciones.Visible := False;
End;
// Plantilla de Impresión
4:
Begin
PlazoPago.Visible := False;
ImportePago.Visible := False;
ListaMoneda.Visible := False;
TipoCambio.Visible := False;
ListaFormaPago.Visible := False;
ListaEmail.Visible := False;
ListaUsuarios.Visible := False;
Observaciones.Visible := False;
End;
End;

Please respond me ASAP

Please understand that we have been trying to reproduce the access violation based on the video, but failed to do so, because of missing information. It's clearly a combination of various elements in your application that are unique to the issue. Again, please try to isolate the issue so we can investigate here what is going on. A small sample, reproducing the issue will allow us to further investigate so we can find a cause.

ErrorTMS.zip (213.7 KB)

Above is the ZIP source file of one of my screens with issues.

You must compile for iOS and test it in your own devices.

The issue presents once you enter any row with detail arrow and then use the gyroscope to rotate the device, after that event the error is showing.

What happend with the solution for iOS?

I sent the code you ask for 9 days ago

We have a lot ongoing at the moment. We will investigate as soon as time permits. Because of the complexity of this project this will take time to work out a solution.

Hi,

We have tested your application here, and couldn't see an issue, we tested this here on 11.2 update 2. Please provide information on how to properly reproduce the issue.

I am using 11.2 update 2 with FMX UI pack 3.7.8.9 did you use the same control versions from TMS?

We have tested this here with 3.7.9.0 which is the latest version we released quite some time ago.

Pieter

I downloaded latest version of FMX UI Pack, but error continues.

On the image above after the gyroscope turns and I am in "detail" mode automatically returns to the ancestor row and the detail arrow loose it.

Lets solve this by steps, how to avoid the loose of detail arrows?

I recorded again a small video, please take a look at the end because I marked in a red circle what I am trying to avoid.

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

Pieter

The bug is on the gyroscope event, on Android when I turn the device the tableview still on detail mode, but not on iOS it close the detail mode and remove the right detail arrow on the selected item.

I saw your video above but on my iPhone 14 pro it does not the same behavior, wich part of your source code manage the gyroscope so I can take a look.

Thanks

Hi,

We don't actually use any gyroscope related APIs, basically all we do is intercept resize events and rebuild some parts of the tableview.

Pieter

2023 will end soon and I don't want this error from my side continues, because my support for this deprecated suite will end in about 30 days.

Will you work all December?

I provided you with a DEMO and continues the error on my iPhone 14 PRO, as a last resource what do you recommend me to review on UI pack?

What else I can do in order to solve this issue?

Thanks

We'll look into this issue again as soon as possible.

We have tested the demo you attached here:

https://support.tmssoftware.com/uploads/short-url/frNkbYhS5nk8gn4Ru74hDqIiOxl.zip

multiple times on:

RAD Studio 11.3 & RAD Studio 12 on iOS 16.1.3
and could not reproduce the access violation.

Also the demo you demonstrate here:

Is not identical to the demo we have been testing with. Please make sure to test or provide samples with the exact same properties & sample code which is able to reproduce the issue. Something tells me that I'm not testing with a demo that is able to reproduce the issue.

Our testing

Pieter

Thanks for your answer, today I download the demo I provided you, compiles and install on my iPhone 14 PRO, I still having the issue.

Check the video below

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

Hi,

We were finally able to reproduce the access violation. We have further investigated this here and went back to basics. We added an Edit to a styled Panel with inside the Panel a TRectangle (to simulate what happens in TTMSFMXTableView). Basically as soon as the edit is added, the edit is destroyed on iOS. You can try it out with the following sample.

Sample.zip (10.1 KB)

You'll notice Edit1 is destroyed and no longer accessible, when clicking on Button1, you get an access violation. This is what also happens on TTMSFMXTableView. This must be something new related to the following fix they applied: Log in - Embarcadero Technologies, although we are not 100% sure that it is a bug they introduced by applying this fix, or if it's a new bug altogether. Either way, as we isolated this in a new FMX project without FMX components, it's clearly an FMX framework/Delphi 12 issue.

I've went ahead and created a bug report via Embarcadero QC

https://quality.embarcadero.com/browse/RSP-43965

Unfortunately right now, it's unclear if we can get a hotfix or a fix in Delphi12, we tried several things to workaround it without success.

Pieter

I am glad you recreated the bug, thanks for your understanding and patience, in my personal opinion if you think this is a Delphi issue you must create the installer for Delphi 12, so when the embarcadero release the fix all the legacy TMS UI Pack users have the opportunity to have this last update from you.

Off the record, if my iOS App I restricted to run only in vertical position and not horizontal with the gyroscope then there is no error at all, as I wrote you in this thread the bug cames after the gyroscope rotate the entire UI.

Happy holidays to all TMS

We still have the latest source code and can send incremental source updates whenever it's critical, but please understand that we will not provide Delphi 12 support, as you have noticed yourself, everything related to FMX styling is no longer maintainable and should be completely rewritten for some components. Something we decided is no longer worth the effort & time as we already did that in FNC. It's not something we go over lightly as we are aware that many customers are in this situation, so we are working hard to cover all shortcomings and try to provide a smooth migration in terms of licensing & technical limitations. That's also the reason that for some projects the migration will take months and we wanted to go the extra mile by providing case per case fixes / bug reports as the one we are currently experiencing. We'll monitor the QC report and see if we can workaround it or have a fix to help out with your case. Hoping for your understanding and happy holidays to you and your family as well.