Jump to content


Popular Content

Showing content with the highest reputation on 11/20/20 in all areas

  1. It works with Delphi 🙂 Just received the Mac Mini with the new Apple M1 CPU. After a quick attempt to deploy our FMX app, I can confirm that PAServer runs and I can deploy and run our FMX app without problems. "Rosetta 2" seems to do the job very well!
  2. Uwe Raabe

    Issue with UsesCleaner..

    No, the zip only contains the source. I have attached another one with a compiled exe and a cfg file. UsesCleaner.zip
  3. Alexander Elagin

    FireDAC Add On discountinued? (Good by Embarcadero?)

    UniDAC has a nice feature called Unified SQL (https://www.devart.com/unidac/docs/unisql.htm) which can be used to automatically preprocess SQL statements based on macros and conditionals. Maybe this can help you.
  4. Uwe Raabe

    64 bit compiler running out of memory

    Perhaps you are missing a proper config file (default is UsesCleaner.cfg next to the exe). If there is none, the program will use the default settings which are - well, somewhat special: procedure TSourceFileUsesClauseFormatter.InitSettings; begin UsesHelper.UnitAliases := 'WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;'; UsesHelper.UnitScopeNames := 'Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell'; UsesHelper.SearchPath := 'c:\Program Files (x86)\Embarcadero\Studio\19.0\lib\win32\release'; UsesHelper.GroupNames := '<UnitScopeNames>'; end; In your case, the SearchPath may be the culprit, which may cause the standard units not to be found. A decent config file can look like this (with an adjusted SearchPath entry of course): [Settings] Indentation=2 Compressed=0 MaxLineLength=130 SearchPath=c:\program files (x86)\embarcadero\studio\21.0\lib\Win32\release; UnitAliases=WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; UnitScopeNames=Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;System;Xml;Data;Datasnap;Bde;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell GroupNames=@DelphiOTA;Winapi;System.Win;System;Data;FireDAC;Vcl [Groups] DelphiOTA=ToolsAPI;DesignIntf;DesignEditors
  5. dummzeuch

    WinUI in Delphi (planned for 10.5?)

    Not that I know of. But you could have a look into the BPLs using the GExperts PE Information Expert. It shows a list of units and classes which the package exports. That would give you a starting point.
  6. Marco Cantu

    Outdated Delphi Roadmap

    The issue with "Delphi support for the latest iOS Simulator" is that the iOS simulator technology is undergoing a complete change. In the past, on Intel Macs you had to build an Intel App the simulator could run. The new ARM Mac would require a different binary target -- so in effect a different compiler. Well, it might not require a new compiler, given the binary is the same that iOS runs... but I think you get the point. If we ere to build an Intel simulator (64 bit) in a little time that would be totally useless... So we rather skip it and jump on the ARM future sooner. I know
  7. Lajos Juhász

    64 bit compiler running out of memory

    The easiest way to kill the compiler is to have huge cyclic unit dependencies. Try to reduce that. Also if the project was created before unit scope names were introduced you should add the scope names to the units in the uses lists and remove from project options in Unit Scope Names.
  8. dummzeuch

    WinUI in Delphi (planned for 10.5?)

    Hm, when will Microsoft start to rewrite Office to use WinUI? Until that happens, I am skeptical whether this will be worth the effort. But I am only a disgruntled old white man^d^d^d^d^d^d^d^d^dVCL developer.
  9. Even though we are a Delphi forum, we have a considerable number of users of the C++Builder among us. Without shifting the basic focus of this forum, we are aware of the long and close connection between Delphi and C++Builder and therefore want to give its users space for their questions. https://en.delphipraxis.net/forum/41-general-help/
  10. This is the correct solution and the Delphi ide/compiler 64 bits is far. I faced this problem on a daily basis, the project became too big, and a solution adopted by us was to divide the project into packages, so as not to overload with a single compilation. You can for example divide main project, FMX package and RTL package.
  11. Hans♫

    AV with InApp purchase on MacOS

    I have attached the FMX.InAppPurchase.Mac.pas that we use so it is easy to use for others. All you need is to add it to your project and also add a modified version of FMX.InAppPurchase.pas where you include the file (just search for FMX.InAppPurchase.IOS, and see how that file is added, and do the same with the FMX edition) FMX.InAppPurchase.zip
  12. Rollo62

    App Tethering with bluetooth

    Did you also set the location permissions (fine should be enough, but fine+coarse do no harm) ?
  13. Alexander Sviridenkov

    Limited delphihtmlcomponent.com sale

    Only once in a year: any delphihtmlcomponents.com product with 44% discount (5 licenses available). Please use coupon code HB2020.
  14. Uwe Raabe

    64 bit compiler running out of memory

    Perhaps this may help a bit: UsesCleanerSource.zip
  15. Darian Miller

    Is datasnap Webbroker a good approach?

    There are quite a few different avenues you could take to support API development. The first step in any is to get it "to work" which you seemed to have accomplished! Your next question is valid - will it scale? The question remains, how much do you need it to scale? How many concurrent connections are planned, what sort of total throughput is required and what are acceptable latencies? Once you define those, you can test those things yourself by using tools like JMeter and BlazeMeter and see if your performance is acceptable. If it's not, then you can look at scaling methods, either locally with Windows Clusters or migrating to cloud services on AWS or Azure. If the performance isn't satisfactory, you could also look into different implementations. One of the most commonly used frameworks is mORMot which has been highly optimized. If you join their community you'll likely get some help getting started. There's a LOT of code available, and much you can ignore to get started. Another option is to get a commercial finely-tuned multi-tier approach from Components4Developers. This option has been around a very long time and is quite mature, and quite performant. Another commercial option to look into is the Remoting SDK from remobjects. This also has been around quite a long time and is widely used. For a real simple and performant commercial toolkit, also look at RealThinClient components. There are plenty of other choices out there. The next step that I would recommend is to analyze your projected usage and start establishing some real testing metrics that you can validate current and future decisions on. Get the tools in place to back up your API infrastructure with measurements and validation. In addition to API testing, get line-by-line performance measurements with ProDelphi or Nexus Quality Suite to track down different implementations.
  16. Marco Cantu

    November 2020 Roadmap

    Available at https://blogs.embarcadero.com/rad-studio-roadmap-november-2020/ Also, PM commentary at https://blogs.embarcadero.com/rad-studio-november-2020-roadmap-pm-commentary/
  17. Dave Nottage

    AV with InApp purchase on MacOS

    That's news to me 🙂 I see now from an email that you said I should share what I did for you.. which I will do soon.
  18. Mahdi Safsafi


    @David Heffernan Few remarks about your code if you don't mind : 1- Its pointless to use string when characters are fixed in size ... Simply use static array of X char. 2- Its also pointless to calculate index when you already used a case ... Simply declare your array using char-range. In your case, compiler generated additional instructions to compute the index. function HexToBin2(const HexValue: string): string; type TChar4 = array [0 .. 3] of Char; PChar4 = ^TChar4; const Table1: array ['0' .. '9'] of TChar4 = ('0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111', '1000', '1001'); Table2: array ['a' .. 'f'] of TChar4 = ('1010', '1011', '1100', '1101', '1110', '1111'); var HexDigit: Char; P: PChar4; begin SetLength(Result, Length(HexValue) * 4); P := PChar4(Result); for HexDigit in HexValue do begin case HexDigit of '0' .. '9': P^ := Table1[HexDigit]; 'a' .. 'f': P^ := Table2[HexDigit]; 'A' .. 'F': P^ := Table2[Chr(Ord(HexDigit) xor $20)]; else raise EConvertError.CreateFmt('Invalid hex digit ''%s'' found in ''%s''', [HexDigit, HexValue]); end; Inc(P); end; end;
  19. Vincent Parrett

    DPM Package Manager - Progress update

    Hi Wagner I'm working towards the design time support, it will take a while but I'll get there eventually. Once I have it working I'll email you again and we can see how it will work with your products.
  20. Hi All For those who are interested, I have made some progress on this project, and have uploaded an installer with the command line tool and IDE plugins for XE2-10.4 - it's still very much an alpha version (not feature complete or stable) but at least shows the direction I'm heading in. I have added some quick notes on how to get started with dpm https://github.com/DelphiPackageManager/DPM/blob/master/GettingStarted.md The installer can be found here https://github.com/DelphiPackageManager/DPM The IDE plugin is still a bit rough around the edges but reasonably stable. Note that installing design time packages is still being worked on. Most of my open source projects have package binaries under the releases tab (the getting started notes show what to do with them). It's still some way from being ready for production use, we are still working on a website/package repository. If you are a library author, please do take a look. Creating packages is not at all difficult.
  21. Kas Ob.

    Setting Scroll Bar Width problem

    I would suggest that you try AlphSkins, you can give it a try, just remember all grids component are not supported by default, but will be skinned by adding them to ThirdParty list in SkinManager as shown in this screenshot After that you can control these component in sSkinManager Also there is special package to handle the DB-Aware controls https://www.alphaskins.com/dwnld.php , ScrollOptions in supported controls are individually assigned. The lifetime license is $190 and it does worth every cent, the author is always there providing great and fast support, and always adding features, every version is just better, try it for yourself and see if it does fit your need.
  22. Saphire Neil

    The android app doesn't start at specific devices

    Hi Jaun, Thank you so much for coming back to me so quickly, I tested the above and that done the trick! I also spotted a problem with my release version, long story short, I forgot to tick the “Generate Android App Bundle file (arm + arm64) in the “Compiling” option with the target set to "Android Release 64bit", I ticked this and re-published my app and that sorted the release version. Thank you again. Neil
  23. Dalija Prasnikar

    WinUI in Delphi (planned for 10.5?)

    64bit IDE is not question of easiness. It is also question of 3rd party libraries and design packages support. You cannot mix 32bit and 64bit DLLs so having 64bit IDE would mean everyone would need to provide their components and plugins as 64bit versions, too. Also, because you cannot mix 32bit and 64bit DLLs in a process, there is question of other parts of the Delphi IDE - this is not just Editor, but also compiler, linker, debugger... not everything is written in Delphi and porting any of the necessary parts to 64bit may not be straight forward. Easy part of 64bit transition is about Delphi applications, even though depending on your code you may have smooth or bumpy ride, too. I didn't have to do any adjustments for my code, because I never used any hacks around integer - pointers casting and I always had bitness explicitly specified for any data types I have used. So, generally most of transition to 64bit should be easy, but it also depends on specific projects and other libraries, plugins and interactions they might have and use. Scaling is bit different story... VCL Styles originally didn't have High DPI support, and when they were added to IDE theming in Rio they were still without High DPI support... now they have High DPI support, but tweaking the IDE to fully work under High DPI does require some work. This part would be the same with or without VCL Styles. I would first make IDE high DPI aware and then add styles... but that is me... why are some things done the way they are, I have no idea.
  24. Kas Ob.

    Update: C++Builder and Platforms Support

    I didn't miss the point, i will always be with quality over pile of pricey useless or half useful stuff, but they missed the point too ! So what is their decision exactly ? that something i need to know and understand to make opinion or decision too, so if anyone can show me what was the decision that is talking about focusing on Windows while the roadmap doesn't show a hint what Windows will get. Is the plan to delay the crossplatform needed work, to work on Windows by investing time and resources in code insight and visual assist ? these two is what on the top of the list for quality and feature, their words, their post. Read the lines and between them. There is no chance to enhance a jack, while they will start to work on Code Insight and Visual Assist, just like LSP, and next road map it will be LSP 2.1 Just yesterday we were struggling to help in porting few API's "For Windows, Built By Microsoft last Monday (It must be)", Delphi and CBuilder were always for Windows, yet they failed or may be succeeded to make each and every developer run left and right to add newer functionality when sometimes it is just one API addition, this is going on since 20 years, and they are talking about quality and focusing on Windows. Kill CBuilder, it is out dated failed and still failing to build something modern and useful of any real projects out there, and when it build it, it is slow, so what is the point of having or wasting resources on failure compiler to make it support C++17 in 2020, just pull the plug and let it rest, and focus on Delphi, make Delphi generate static lib's that can be compiled by real 2020 C++ compilers, and let it use their static libs, that a feature will worth 100X of what called CBuilder, just like JBuilder kill it, or PHP builder . Quality is out of question when the correction is to be done with the same management with same logic, 20 years is enough for a ride, while one years proof of failing for a developer is enough to let go.
  25. Hi Lars Not possible. As a workaround, I created computed (calculated) fields and used them in the group by clause.