Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 09/01/23 in all areas

  1. Lars Fosdal

    What is the benefit of sorting the Uses clause?

    I remember having this discussion with an american on LinkedIn. He had written a tool that sorted the uses clause, and he turned a darker shade of crazy when I pointed out the risks, "chanting" USA, USA, USA. No point in discussing with such people.
  2. Angus Robertson

    ICS V9.0 announced

    ICS V9.0 has been released at: https://wiki.overbyte.eu/wiki/index.php/ICS_Download ICS is a free internet component library for Delphi 7, 2006 to 2010, XE to XE8, 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney and 11 and C++ Builder 2006 to XE3, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney and 11. ICS supports VCL and FMX, Win32, Win64 and MacOS 32-bit targets. The distribution zip includes the latest OpenSSL 3.1.2 win32, with other versions of OpenSSL being available from the download page. ICS V9 is planned to be a long term support release with no new components or major features added, just bug fixes as needed, major changes will be for V10. V9.0 has been tested with Delphi 7, but I had to make changes to several new components due to missing language features and TWebBrowser does not exist, so V9.0 will be the last tested with D7. Delphi 2007 is easier to support for those building ANSI projects and will become the oldest version supported. An overview of the new samples and components was posted in this group a few days ago, and is included in the download page. The full release notes for V9.0 are at https://wiki.overbyte.eu/wiki/index.php/ICS_V9.0 All ICS active samples are available as prebuilt executables, to allow ease of testing without needing to install ICS and build them all. There are four separate zip files split into clients, servers, tools and miscellaneous samples which can be downloaded from https://wiki.overbyte.eu/wiki/index.php/ICS_Samples The Getting Started page at https://wiki.overbyte.eu/wiki/index.php/ICS_Getting_Started has also been updated with all the new components. Angus
  3. This probably means that there is no memory leak but memory fragmentation. You have 118MB memory split into thousands of block separated by small free blocks. In madExcept, you can check for either memory overrun or under-runs. It is detected instantly and triggers an exception. Just check the checkbox in madExcept settings. One of my first advice was you split the whole applications in small chunks, candidates are the threads. Run the code in another executable easier to debug and understand than the whole application. Divide to conquer!
  4. dummzeuch

    SBOM tool for Delphi

    I've got a tab on our About dialog that lists all open source libraries used in the project based on checking whether a specific unit is linked to the executable. The idea there is to automatically provide credits to these, but it could be extended to also include commercial libraries as well. Just find a unit name in these libraries that is always llinked in when the library is used. It looks like this: That's not quite an SBOM, but it is a good start, I think. Of course this only makes is easier to get such a list if you have more than a few programs, otherwise doing it manually would not be such a chore either. Here is the Stack Overflow question that got me started on how to do that: https://stackoverflow.com/q/12104914/49925
  5. sjordi

    Windows ARM support ?

    It would be nice to address Linux ARM because more and more IoT and robots are using these processors. It would really be nice to target those ones from RadStudio.
  6. mvanrijnen

    What is the benefit of sorting the Uses clause?

    Actually this means there is a design flaw (i know, hard to not have this situations, we have them also, but in reallity it's something to fix i think). How you going explain 15years later that unit xyz has to be before unit abc, put some text in comments ?
  7. Uwe Raabe

    What is the benefit of sorting the Uses clause?

    Albeit there actually is a request for that, MMX does not sort the units by name. They are grouped according to a user defined pattern, but inside the group the order stays intact. F.i. this is the Groups entry for one of my projects: After some Delphi units in a decent order based on dependency, there are the Raize and TMS units followed by VirtualTrees, PngComponents and the ZipForge units. The last four mimic the unit scopes and naming convention of the project itself also ordered by dependency. (TMS can improve their unit naming btw.) A typical uses clause looks like this: uses Winapi.Messages, System.Classes, System.Actions, System.Types, System.ImageList, Vcl.Graphics, Vcl.Menus, Vcl.ActnList, Vcl.Controls, Vcl.ExtCtrls, Vcl.Forms, Vcl.StdCtrls, Vcl.Tabs, Vcl.Dialogs, Vcl.ImgList, Vcl.VirtualImageList, Vcl.AppEvnts, RzTabs, RzForms, RzShellDialogs, RzPanel, RzButton, RzSplit, RzCommon, Common.Form, IpButton, IpMRU, IpMultiLanguageSupport, TcEditorTypes, TcGlbCfgSystem, TcGlbCfgVisualStyle, RNcCodeViewer, REditorStructure, REditorItems, RBasePalette, RStoragePalette, REditorPalette, RCustomPalette, REditorPanel, RBaseFrame, RObserver, RStandardStatus, REditorNesting, RBaseEditorFrame; The grouping algorithm is pretty flexible and I never had a case that could not be handled. If auto-sort a uses clause is automatically sorted whenever MMX modifies it - a very handy feature.
  8. Fred Ahrens

    What is the benefit of sorting the Uses clause?

    Sorting units by name is dangerous. There are some units that need to be added at the end of the list, if they overwrite some behavior's of objects and functions of other units above in the list. There are other units that need to be placed on top of the list if they do some special initialization that needs to be done in the app as soon as possible, before any other parts of the app start to initialize.
  9. Uwe Raabe

    What is the benefit of sorting the Uses clause?

    It started with the request to expand the unit scope names, which gave a good boost to compile time in some cases. The idea of uses clause grouping and sorting crept in my mind when I noticed difficulties to quickly scan the list of used units. With a sorted and grouped uses clause the used libraries are clearly visible immediately. So its partly for compilation speed as well as a neat look (some call it OCD).
  10. OK. Well I'm glad this thread has been useful!!!
  11. I think, the question already answered. Thanks, now i know what I have to do..
  12. Kryvich

    End of licence Comunity edition.

    There are no major language and RTL differences between Delphi 10.4 and 11. At the same time, the new version is more stable, has better HighDPI support, improved LSP based ErrorInsight... There is no reason to stay on the old version of Delphi. Only if you have specific requirements that do not allow you to switch to a new one.
  13. darnocian

    Please need help for some java lines program to Delphi

    sorry, I forgot the JavaClass before the .init 😉
  14. Dalija Prasnikar

    Strange Benchmark Results; Am I Missing Something?

    LOL I should have known better than doing math first thing on Sunday morning.
  15. Vandrovnik

    Strange Benchmark Results; Am I Missing Something?

    I think the result will not be the same - original code adds number 15 just once to the total, while your code will add it twice...
  16. Uwe Raabe

    FireDAC TFDQuery - table names as parameters

    A table name cannot be treated as a parameter. Instead you can use a macro like this: DELETE FROM &TableName and then set the actual table name with MacroByName.AsIdentifier := DestinationTableName;
×