Пікірлер
@surendrasiddhi8502
@surendrasiddhi8502 6 күн бұрын
Great component.
@muratatesoglu661
@muratatesoglu661 10 күн бұрын
thanks.
@nigelarmstrong252
@nigelarmstrong252 10 күн бұрын
The more I see of this grid, the more it impresses me. Great stuff.
@Graham_Wideman
@Graham_Wideman 10 күн бұрын
Lots of good info that I was needing in this video, so thanks for posting it. But it stops short of a topic of interest when considering using the Data Grid + DB adapter with an actual database server: How do the two data loading modes affect the ability to push edits to the server? And with a server come multiple users, so what do we need to know about how the two modes deal with conflicting edits? (And/or is there a locking mechanism to avoid more than one user editing the same record?). Thanks.
@iceCold101286
@iceCold101286 9 күн бұрын
Hi, whether it is a database server or not, it's the responsibility of the dataset to handle this. Right now, we support Client-DataSet & FireDac connections in order to filter & sort directly on dataset level. For reading and writing data we support all sequenced dataset types. Other than that it's the responsibility of the dataset posting data to the server and making sure multiple users are not editing the same record. Settings about locking or handling multiple users are either set at dataset level or server level or both.
@Graham_Wideman
@Graham_Wideman 9 күн бұрын
@@iceCold101286 Thanks for your reply. I will have to look into what interactions occur between all the components during the edit-and-post cycle to understand which strategies Data Grid + DB adapter support.
@erictenwestenend868
@erictenwestenend868 10 күн бұрын
Hi I want to create a json string for grids Columns (A Collection) but get AV errors , whats going on?
@tmssoftwareTV
@tmssoftwareTV 10 күн бұрын
I suggest to contact support via email and provide details how we can reproduce this here so we can investigate
@Graham_Wideman
@Graham_Wideman 11 күн бұрын
@tmssoftwareTV: What are the prospects for getting this control properly documented and demoed? As it currently stands, TTMSFNCTreeView has 111 events, of which only 91 are listed in the help docs. And of the ones that are listed, 100% of them have "explanations" that simply repeat pointlessly what the event name already tells us, like: "OnAfterDrawNode: Event called after a node is drawn.", and no other clue regarding typical functionality one might implement with each event. So while one of the flagship features of this component is that it can deal quickly with a large number of nodes by operating "virtually", which completely relies on Events, yet 100% of the Events are undocumented. The help doesn't even show the arguments of the event, from which we might glean some idea of its purpose or intended use. In order to make any progress at all I had to create a project in which I added event handlers for all 111 events, just so I could get a list of all the event handler signatures in which the arguments are displayed. But that still leaves many points unanswered. So far I have also failed to find a realistic demo of how to use this component in virtual mode where it obtains data from a separate data structure. That's an obstacle to using this control, and also a missed opportunity to show how its operation parallels that of Jam/Lischke Virtual TreeView, which would allow users of that control to quickly adapt to this one.
@Graham_Wideman
@Graham_Wideman 11 күн бұрын
An important question is how to associate data with each node. Unlike in Collection mode, in Virtual mode the treeview fires an event to get data for each for each node, for example, to compose text for the node (and other cells in the row if present). Normally the needed data comes from some other data structure, so on each treeview node you would want to store a pointer or id of some kind to link it to the data element in the other data structure. Jam/Lischke Virtual Treeview has just such a "user values" section in its Node record. However I don't see such a facility in FNC TreeView's documentation. The demo in this video relies on the over-simplification of just satisfying GetNodeText with trivial data available within the TTMSFNCTreeViewVirtualNode, rather than showing how to link to some "external" data structure. 12:12 suggests that maybe Node.Row could be used as a key into a list structure connecting to the external data structure. However, I'm skeptical because those Row numbers will (or should!) change when nodes are expanded and the number of children then quantified, or if nodes are inserted for any other reason. So it would be good if there was an example of how to use the FNC TreeView in virtual mode with the external data that is the main rationale for virtual mode.
@Graham_Wideman
@Graham_Wideman 11 күн бұрын
... and on playing with the Tree View demo's source code, autocomplete on a TTMSFNCTreeViewVirtualNode variable shows properties like DataPointer, DataObject, DataInteger, DataBoolean and DataString, which I'm guessing are ways to attach a link or key value by which to associate external data with each node. These do not seem to be in the docs, and it would be nice if they were to confirm my guess as to their purpose, and for such detail like whether the DataObject will or will not be freed when a node is deleted (which should be an option... perhaps it is.).
@Graham_Wideman
@Graham_Wideman 12 күн бұрын
It seems there may be in an issue: "because you specify the number of nodes on every level and basically right from the start before the values are being supplied for these numbers". But if that's the case, then the control wouldn't be able to defer determining the number of children until the time the user clicks on the "expand" icon for that row. Virtual Treeview handles this by allowing to initialize each node with ivsHasChildren, which causes an expand icon to appear for that node, and does not call for the number of children (OnInitChildren event) until the user actually clicks on that expand icon. This is important to enable scenarios with very large deep trees, or trees with cycles in their graph; if a tree control insists on determining the number of children of every node to unlimited depth, then the former scenario would take a long time to prepare, and the latter would loop indefinitely and crash. So I would very much like to know how FNC TreeView handles this.
@Graham_Wideman
@Graham_Wideman 12 күн бұрын
OK, I'm somewhat encouraged by 1:45 "then as soon as the next level is being expanded that you then have yet again the chance to determine the number of items that you are showing"... though this should hardly be a trick, it's a mainstream way of using a tree in virtual mode.
@tmssoftwareTV
@tmssoftwareTV 11 күн бұрын
@@Graham_Wideman at every expand, you have the chance to control the nr. of childs
@Graham_Wideman
@Graham_Wideman 11 күн бұрын
@ I appreciate the encouraging reply. But what are the details as to (a) what property or event tells a node to display an expand/collapse icon, and (b) what event fires after the user clicks that icon, in which to calculate the child count?
@iceCold101286
@iceCold101286 10 күн бұрын
@@Graham_Wideman Please contact us through direct support because KZbin tends to remove comments from time to time, it's unclear why but my previous comments is missing.
@Graham_Wideman
@Graham_Wideman 12 күн бұрын
Question: How does TMS FNC Data Grid deal with the issues that previously DBAdvGrid addressed with the PageMode setting? That is, the choice between loading from the database server only the records required for display (Paging), versus loading all the records (possibly time consuming) and thus facilitating much faster subsequent scrolling, and more importantly, facilitating sorting and filtering. Also the first of these modes I believe maintains a cursor on the server, which enables immediate writing of edited data, whereas the non-paging mode disconnects from the server after loading all the records, and some kind of additional steps are needed to write the data to the server. Anyhow, what approach(es) does FNC Data Grid take to this tradeoff? I'm not seeing this discussed in the documentation. Thanks.
@iceCold101286
@iceCold101286 11 күн бұрын
There are 2 modes, buffered (default) which sets the buffer count to the amount of visible rows, and AllRecords, which loads all records. In terms of scrolling, there is no Page mode yet, but it's on our feature request list.
@Graham_Wideman
@Graham_Wideman 11 күн бұрын
@@iceCold101286 Thanks for your reply. But if "load only visible rows" is the default, then how is the Data Grid able to sort or filter sensibly? Does it compose new SQL behind the scenes to perform sort/filter on the server? Also, I see no mention of buffer or AllRecords in the docs. I guess you might be able to see this if you have the source code. But at the moment I can't even get the available (no source) Demos to compile (apparently the precompiled components were compiled with mutually incompatible library versions), and that seems to preclude autocomplete from showing any clues, and also blocks learning about the components by experimentation. So at the moment making headway understanding the Data Grid is slow going.
@iceCold101286
@iceCold101286 11 күн бұрын
@@Graham_Wideman Sorting & Filtering is done directly on the dataset, there is support for ClientDataSet & FireDac, can you point out which errors or compile issues you see? I'm developer at TMS Software, so happy to help out
@Graham_Wideman
@Graham_Wideman 11 күн бұрын
@@iceCold101286 Examples: TreeView: [dcc32 Fatal Error] UDemo.pas(7): F2051 Unit FMX.TMSFNCTreeViewBase was compiled with a different version of FMX.TMSFNCScrollBar.TTMSFNCScrollBar TableView [dcc32 Fatal Error] UDemo.pas(10): F2051 Unit FMX.TMSFNCControlPicker was compiled with a different version of FMX.TMSFNCCustomControl.TTMSFNCCustomControl.IsAppearanceProperty ListEditor [dcc32 Fatal Error] UDemo.pas(7): F2051 Unit FMX.TMSFNCListEditor was compiled with a different version of FMX.TMSFNCCustomControl.TTMSFNCCustomControl.IsAppearanceProperty The installer suggested (and I accepted) installing for Delphi 12 (I have 12.2). I have no other TMS software installed on that Delphi edition.
@Graham_Wideman
@Graham_Wideman 11 күн бұрын
@@iceCold101286 Thanks -- your emailed solution solved the compile issue.
@ptuhari
@ptuhari 15 күн бұрын
Super!
18 күн бұрын
Is this also possible to create bootstrap DB grids?
@muratatesoglu661
@muratatesoglu661 18 күн бұрын
Thanks. excellent.
@StupidInternetPeople1
@StupidInternetPeople1 20 күн бұрын
Very original thumbnail, your face + pointing. The #1 sign of mediocrity on KZbin. Don’t consider for a second how looking like EVERYONE else makes you an ignorant lemming, not a marketing genius 😂
@muratatesoglu661
@muratatesoglu661 22 күн бұрын
thanks
@muratatesoglu661
@muratatesoglu661 24 күн бұрын
One more fullstack example like music library demo will be nice and useful.
@tmssoftwareTV
@tmssoftwareTV 24 күн бұрын
Good suggestion. We'll consider this for future developments.
@muratatesoglu661
@muratatesoglu661 24 күн бұрын
thanks
@michaelklos4451
@michaelklos4451 27 күн бұрын
doing it this way (Lazarus v3.6 and TMS web core academics version). When trying to rebuild, it stops and marks line 612 "property Padding" (Error: no property found to override/Error: This kind of property cannot be published/Error: Syntax error, "READ" expected but ";" found). Any ideas?
@Stellards_io
@Stellards_io 26 күн бұрын
The academic version was designed for Delphi 11 Community Edition. It cannot be used for Lazarus. The full TMS WEB Core version is needed for Lazarus.
@SuperAnouri
@SuperAnouri Ай бұрын
combination of grid filter with pagination is chalenging. filter in current page or filter in whole table and return new page?
@tmssoftwareTV
@tmssoftwareTV Ай бұрын
In TMS FNC Data Grid, it would filter on either the full dataset connected to the grid or the full data loaded in the grid.
@AydınOdacıoğlu
@AydınOdacıoğlu Ай бұрын
How about adding side menu to bootstrap application. Any hints about css adjustments?
@tmssoftwareTV
@tmssoftwareTV Ай бұрын
We discovered a small CSS class conflict with newer Bootstrap libraries and fixed this. This will be addressed in v2.7.0.2
@TheSchwartzIsWithYouToday
@TheSchwartzIsWithYouToday Ай бұрын
This looks very cool! Thanks for the overview. If you have a lot of stuff for each "page", would it make sense to use a PageControl with the tabs hidden and use this to switch between the pages, rather than the panels?
@rhazell43
@rhazell43 Ай бұрын
Would like to see an example of exactly what you have described
@tmssoftwareTV
@tmssoftwareTV Ай бұрын
TWebSideMenu handles automatic hide/show of container controls associated with items but at this moment it doesn't handle TWebPageControl active page switches automatically. So, you would need to do that programmatically
@OliverTran-2025
@OliverTran-2025 Ай бұрын
Is the TMS component totally free?
@tmssoftwareTV
@tmssoftwareTV Ай бұрын
While many of our TMS components come with free trial versions, they are not entirely free. Our products are available under a paid license with various pricing options based on the specific component or package. You can check the detailed pricing on our website.
@kmrmytube
@kmrmytube Ай бұрын
7:40 is not working for me: There is no overloaded version of "Add" that can be called with these arguments. And there is no update available. Is this a new feature?
@iceCold101286
@iceCold101286 Ай бұрын
Yes available today, download tms fnc ui pack 6.3
@MBen_Delphi
@MBen_Delphi Ай бұрын
Good work! You should add an option to enable column-based searching. For example, when a user clicks on any column in the grid, it transforms into a TEdit field where the user can type, and the grid automatically filters its data based on that column.
@iceCold101286
@iceCold101286 Ай бұрын
We are working on a similar feature coming up in the next version (Filter Row)
@mehamada1
@mehamada1 2 ай бұрын
is it has column summary like sum of a column, or avg of a column etc.
@iceCold101286
@iceCold101286 Ай бұрын
Yes
@joostvanrijswijk4742
@joostvanrijswijk4742 2 ай бұрын
These 10 minute clips are perfect TMS snacks for me. I also like the 7 course dinners that Holger Flick serves very much but snacks I cannot resist
@vannersp
@vannersp 2 ай бұрын
It's looking good so far. However, the make or break for me is how well it handles a connection to a data set. I also need to see the full list of in-grid editors, and whether they can be dynamically determined for each cell (not just choosing for a whole column)
@iceCold101286
@iceCold101286 Ай бұрын
Editors for each cell is possible, also look at our new video around inplace editing
@erictenwestenend868
@erictenwestenend868 2 ай бұрын
Just what i need
@TheSWIERZ
@TheSWIERZ 2 ай бұрын
That's Great!
@ezkatka8824
@ezkatka8824 2 ай бұрын
Is this a web or desktop application?
@df3yt
@df3yt 2 ай бұрын
I found a bug in the ObjectToJsonString, if your Date is in a record type it will become a normal double, if it's in a class it will display correctly with the zulu time and format. It does convert back to your object either way though but will confuse people using your JSON.
@tmssoftwareTV
@tmssoftwareTV 2 ай бұрын
is unfortunately a limitation in the Delphi JSON library
@zenzen-tb2jg
@zenzen-tb2jg 2 ай бұрын
Why are all sample programs so ugly, making it seem that there is no interest in learning, even for "hello, world!" it should be more aesthetically pleasing
@aandscrawfoski
@aandscrawfoski 2 ай бұрын
Thankyou for the info., Can you tell me what the cost of the software please?. I wish to build an alarm system using Delphi. System, alarm box with multi sensor inputs on ic2 bus. Alarms sent to server across a 4g modem. Server is Linux apache for security. Alarms land on server which reports to a dash board on my laptop with neon aero icons glowing red and green subject to on site sensor status. Alarm also sends alarm outcome to android mobile alarm icon tiles neon aero green, red status. I'm a newbie and just a simple electrician. I hope you can help direct me to a simple interface for programming my system Thanks Andrew New Zealand
@tmssoftwareTV
@tmssoftwareTV 2 ай бұрын
Miletus for Raspberry Pi comes with TMS WEB Core www.tmssoftware.com/site/tmswebcore.asp At this moment, single developer license price is 395EUR
@teceffect9826
@teceffect9826 3 ай бұрын
I did my exams in Pascal Delphi in 2001. Never went back to Delphi. Why? Because there was no programming job for Delphi. To bad. Great language
@tmssoftwareTV
@tmssoftwareTV 3 ай бұрын
These days though, Delphi developers are in high demand, at least here in Europe
@gr4ve789
@gr4ve789 3 ай бұрын
Random comment in order to support Delphi and TMS Software
@peterpanino2436
@peterpanino2436 3 ай бұрын
Non-visual components: Does this also apply to the TMS TAESEncryption component? Can the TAESEncryption component be run in the WEB Core environment? Can I send an HTTP message to a WEB Core page, have the TAESEncryption component process that message, and have the WEB Core page send back an answer to the client? If so, can you show me a working example?
@peterpanino2436
@peterpanino2436 3 ай бұрын
Why is SmartSetup not installed along with the Dashboard application?
@tmssoftwareTV
@tmssoftwareTV 3 ай бұрын
To be considered for a future update.
@peterpanino2436
@peterpanino2436 3 ай бұрын
Is the installer bug with MSBuild when compiling the TMS packages (the command line is too long) already fixed? Why not let the user decide whether to use MSBuild or the IDE compiler? Installing packages with the IDE compiler has worked without problems for many years with other package installers. That bug prevented me from renewing my TMS AllAccess license.
@tmssoftwareTV
@tmssoftwareTV 3 ай бұрын
TMS Smart Setup doesn't suffer from the "command line too long" problem.
@stevewarby12
@stevewarby12 3 ай бұрын
Can we edit the components that are added.
@igorklepoch8642
@igorklepoch8642 3 ай бұрын
Amazing use of chatGPT Bruno. Looking forward to give it a try !
@JuanCCilleruelo
@JuanCCilleruelo 3 ай бұрын
That feature is really not working for me. I copied the template files to the project folder, as you showed in the video, but nothing happened. My project is divided into many folders, one for each functionality. I've also tried copying the template files into each folder of the project, which seems grotesque. And really, nothing happened. Nothing.
@nigelarmstrong252
@nigelarmstrong252 3 ай бұрын
Nice.
@zemorango
@zemorango 3 ай бұрын
The next version of tms web core seems to be very good
@jingwa
@jingwa 3 ай бұрын
how to make it as a EXE?
@tmssoftwareTV
@tmssoftwareTV 3 ай бұрын
If you select the Miletus project type, it will generate an EXE
@ramazangeven2615
@ramazangeven2615 3 ай бұрын
Great products... Thanks to TMS
@joostvanrijswijk4742
@joostvanrijswijk4742 3 ай бұрын
Wow, suddenly I look forward to building the web part of my project! :)
@joostvanrijswijk4742
@joostvanrijswijk4742 3 ай бұрын
Awesome!
@joostvanrijswijk4742
@joostvanrijswijk4742 3 ай бұрын
I love these 10 minute challenges!
@BonfiglioSergio
@BonfiglioSergio 3 ай бұрын
Great job Pal.
@vfclists
@vfclists 3 ай бұрын
It would be a good idea to have timestamps on it. Some of us are drive by viewers who need to get to the interesting bits right away, then make the time to watch the whole webinar later.
@iceCold101286
@iceCold101286 3 ай бұрын
Thanks, we'll add timestamps soon.
@tmssoftwareTV
@tmssoftwareTV 3 ай бұрын
Thank you for your feedback! We’ve added timestamps to the video to help you navigate to the interesting bits more easily. Enjoy watching!
@Shortsmead2012
@Shortsmead2012 3 ай бұрын
Another wonderful development from the Amazing TMS Software team. Thank you Pieter, Bruno, and colleagues. Back to school!