I disable Autolookup on design time on FNCTableView so my user typewrite the text he want to search on the lookupbar, I did that because I want your search method fires up until my user press the ENTER but It doesn't.... so it's extremely slow.
You did not understand, once I fill the FNCTableView with thousands items and my user press the FILTER button and start typewriting it's extremely slow to refresh the FNCTableView.
Your autolookup property it's only a joke, it does not working disabling on design time, neither on runtime.
I understand very well. Right now, the filter routine is being executed with each character press which is slow when you have a large amount of items. We'll have to introduce a property to control when the filter is being executed, for example when the user presses enter or when the user stops typing. When executing the filter once, it will speed up the filtering process. As an alternative, please consider using a separate edit and use the Filter programmatically.
But I don't have the fault of your code, I am just asking the meaning of the property "Autolookup" on FNCTableView, because such word in the real world mean that some control will automatically lookup a value.
Also 34,000 records on the SQL world is nothing compared to millions, TMS sold me the idea that FNC UI Pack was a complete new horse faster than FMX UI Pack... in this particular scenario isn't right?
We have meanwhile added improvements to the filter edit, which will perform the filter when you have stopped typing. Next version of TMS FNC UI Pack will have this included.
If you can take an idea, I think it's more useful that code the "ENTER" key instead stop typing, because some user maybe typewrite something wrong and correct his own error so this will end in some stop and then correct the right values.
Also a User maybe stop thinking and left incomplete an specific word and later finish the words, so I think the enter key or the press of some button will be more accurate to this behavior.
But that's my personal opinion considering my own 2000 customers
We'll start with this improvement and then see if we can expand it with ENTER as a requirement for applying the filter. Note that, right now, nothing prevents you from adding your own TEdit / Filter routine, but ofcourse outside of the TTMSFNCTableView as an alternative.
Video above show you the performance using your built in filtering againts mine
I think you need to check again the performance specially on Android, I saw you improvement working fine only on Windows.
On the video recorded you can see that when I use your built in filtering you can see the next troubles:
When I press the FILTER button takes sometime to appear the edit below the FNCTableview header
When user start typing there is small delay on the keyboard that you can see, this is caused because your are firing the filtering routine too early, so I assume Android stopTyping event is different than Window
When I delete backwards character by character once again there are some delay
When I press the "DONE" button named OCULTAR on my video there are some delay too
As you can see on my video my personal filtering routine add a center popupwindow alerting my user that he needs to wait, so gives no impresion that the App is freeze or hangs.
I asked you in another thread how to obtain the number of items located once I filtered some data, this is to inform my user the number of record located.
We have currently uploaded a new version of TMS FNC UI Pack (v6.3.0.3) which covers some of the improvements and fixes for the tableview, however, it does not yet include a way to filter upon entering the text, instead of with a timer. For this, we have now exposed the Edit property which will allow you to execute the following code:
var
e: TNotifyEvent;
begin
e := TMSFNCTableView1.Edit.OnChangeTracking;
TMSFNCTableView1.Edit.OnChangeTracking := nil;
TMSFNCTableView1.Edit.OnChange := e;
end;
Note that this will require an additional update. If you interested, after you have download the latest version, we can provide an incremental source update.