Jump to content

Roger Cigol

Members
  • Content Count

    419
  • Joined

  • Last visited

  • Days Won

    6

Posts posted by Roger Cigol


  1. Does your C++ Builder 5 use any features that are "Enterprise" edition only? if so you would need to make sure you have access to these in the Trial edition.

    C++ Builder 5 used String = AnsiString - all modern editions use String = UnicodeString. This can be need a bit of work if you are using low level processing of the String types. Often this change is hardly noticed.

    You would need to decide if you are going to stick with the "Classic" compiler (which does still come with 12.2) or move to the Clang compiler which immediately gives you access to modern C++ constructs but

    can also highlight non-standard (ie not quite standard) coding practices that worked under the classic compiler but don't work with modern C++. My view is that it's worth the effort to move to the modern tool 

    chain.

    • Like 1

  2. 2 hours ago, dummzeuch said:

    TryGetTheValue(

    Very good suggestion by @dummzeuch Very few people give enough thought to naming of functions and variables. Developing a consistent approach can significantly help with long term program readability / long term support for large projects. Anything that hints at doing that gets my full support !

    https://cigolblog.wordpress.com/2023/01/

    https://cigolblog.wordpress.com/2019/10/

    https://cigolblog.wordpress.com/2017/06/

    • Like 2

  3. I can confirm that I get the same problem as you (RSS-1987). I get the same issue if I compile with TwineCompile. @Jirka52This is what you would expect - it's not a compile time error - it is a debugger issue. If you get a compile time error there must be a problem with your source file. (or something else strange).

    I also get the same issue if I add a line:   

     

      String S = _D("μ \u00B5 α Ω °C  © Å ");
     

    and then save the file - this forces the file encoding to be UTF-8 with a BOM identifier.

    Definitely a bug.

     

    What is interesting is that the IDE works fine with target of Win64 (traditional) or Win64 (modern). 

    What is interesting and surprising is that the IDE hangs in the same bad way if you use the Win32 classic compiler.

     

     

    • Like 1

  4. 22 hours ago, Gilles Revaz said:

    So this is a tiny bug that I can live with

    Tiny and easy work around maybe - but still worthy of reporting. That way there's a chance it will be fixed in a later release. Small improvements help make the tool set better for seasoned users and new users alike.

    Out of interest: 12.2 does include a minor fix that I reported so it is worth doing !

    • Like 1

  5. 17 minutes ago, David P said:

    Hello Roger

     

    We have a copy of RADStudio so it was an easy job to compile any Delphi components.

     

    For the components where we have the source (Delphi or C++), we needed to add an additional 'Target Platform' of   'Windows 64-Bit (Modern) '.  Using the macro $(Platform) in the output path will create a \Win64x output directory.

     

    For those Delphi components for which we do not have source code, we'll just have to wait for an update from the vendors.

     

     

    Thanks @David P. Yes, you do need to recompile with the \win64x output directory. All is good now - thank you for your extra explanation. Thanks too to @Uwe Raabefor his help / clarification.


  6. 21 hours ago, David P said:

    The answer requires all Delphi components to also be compiled with the 64-bit Modern compiler (usually to a 64x directory)

    For the benefit of me and other interested parties can you expand on this please? Delphi components implies they are written in Delphi. You can't compile these with any of the C++ compilers..... So what exactly did you do that made the third party component work in your case ?


  7. This is related to the different debugger technology in use for Delphi and the different C++ compilers. This is unlikely to change between 12.1 and 12.2 (it would be a big change to change the debugger for a particular compiler - not one that would normally be done as as a same version upgrade). I am sure there is another posting on delphi-praxis covering exactly this issue - but I must admit I spent five minutes looking and couldn't find it.


  8. Do you have an XML Schema file (typically file extention = .xsd) for the UBL 2.1 model invoice?

    If so you can use this with XML Mapper to generate a transform (at design time) which you then use in code

    so that it can populate a client dataset (at run time) with data from an incoming XML file. 

    With this approach XML files that only contain partial amounts of data (as you anticipate)

    are handled correctly.

    • Like 1

  9. or write a function that checks if your text ends with a ';' character and if so deletes the ';' character. Then use a global search for each time you set the SQL property of the query and surround each text with a call to your new function.....


  10. ...Also: which compiler are you using. C++ "classic" is the 32 bit compiler developed by Borland but basically frozen quite some number of years ago. The recommended compilers are Clang32 for 32 bit targets and Clang64 for 64bit targets. 12.1 also introduced a new tool chain for clang 64bit which is expected to replace the earlier 64bit system (this is currently called clang64 modern) but in 12.1 it has some minor limitations which may make it not your first choice if you are still finding your way around. These limitations are understood by Embarcadero and are expected to be removed in next version or two with the goal being to replace the clang64 approach with this "clang 64 modern" approach.

    You select the compiler used for 32 bit applications using the menu Project | Options and then under Builiding | C++ compiler there is an entry "Use classic borland compiler" (I suggest you set this to "false").

    You select the compiler used for 64 bit applications using the "target platform" in the project tree.


  11. Hi Newbee, I wonder what version you are using here? Embarcadero have tried various experiments with the auto completion type editing functionality in recent editions. It is only in 12.1 - with reasonable integration of the visual assists components from Whole Tomato that things are working well. I find 12.1 auto completion fast and reliable. 


  12. 30 minutes ago, Jirka52 said:

    Remember one think, Delphi 12.1 are still 32-bit. Therefore you need 32-bit driver for database, if you want to connect from Delph

    This is true for design time connections. But you can compile to 64 bit application and then connect at run time (but if you do this you CANNOT connect at design time because of the limitation I mention above).

    • Sad 1

  13. You can only open MS Access files on a PC using either 64 bit apps (in which case you need to install the 64 bit MS Access drivers into Windows) or 32 bit apps (in which case you need MS Access on the machine (or at least the drivers). You cannot have both on the machine at the same time.

     

    • Like 1

  14. 9 hours ago, Roger Cigol said:

    I've used ISO and web based installers for different installations - no difference between them.

    Everyone accepts that it is correct that you need elevated privileges to install. "There is no difference between them" means for me either route has always led to being able to run the IDE from a "standard user" account without elevated privileges.

    • Like 1
×