Jump to content

Brian Evans

Members
  • Content Count

    311
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Brian Evans


  1. Could try overloads of a procedure. From the calling site it does what you want but requires a separate definition for each combination of argument types / number of arguments. 

     

    Procedures and Functions - Overloading (Delphi) - RAD Studio (embarcadero.com)

     

    Added: Looks like not much use here due to not being able to easily get a reference to the property as a property vs as a value.


  2. The help also says it is generated if either option is set (detailed map files OR .drc generation);

    Package Files Created by Compiling - RAD Studio (embarcadero.com)

     

     

    Quote

     

    To enable the generation of this optional file, do either of the following:

    • Use the "Detailed" value for the Map file option in Project > Options > Delphi Compiler > Linking.
    • Enable the Output resource string .drc file option in Project > Options > Delphi Compiler > Linking.

     

     

    • Thanks 1

  3. Can try the various SysInternals tools (Process Monitor and Process Explorer) to see some of what that app is doing. There is also tools like API Monitor to see what Windows API calls (and results) the application is making, Depending on the database and database connection method there are logging tools there as well. 

     

    Sysinternals Process Utilities - Sysinternals | Microsoft Learn

    API Monitor: Spy on API Calls and COM Interfaces (Freeware 32-bit and 64-bit Versions!) | rohitab.com

     

    A long shot would be checking any code that runs during shutdown for IF's that might be coded wrong for 64bit so try to do things they shouldn't like try and open a database connection to a non-existent database server. 


  4. Myself I would use the file system over SQLite. Store extra information with the images as either image metadata or in a file beside the image file. This lets you regenerate the database from the files as needed. 

     

    Less involved to do incremental backups. A small SQLite database file + changed image files vs a large SQLite database file with images in it. 


  5. 55 minutes ago, RaelB said:

    @Dave Nottage Thanks for trying that. Yes, I am using 10.4. I am using WinLicense to "protect" the exe, so my first suspect would be that.

    It shouldn't be the issue in general as they even have an option to optimize for Windows on ARM so they at least test on that platform. Still wouldn't hurt to try the application without protection to see if the error message is more helpful. The 0xc0000409 suggests a missing or corrupt library / resource / etc which can be something required by something you load making it harder to track down.

     

    Optimize for Windows on ARM: The Windows on ARM emulation produces some penalties when emulating specific code or data accesses. This option produces a protection code that is emulated faster on Windows on ARM with just a small reduction in complexity in the protection code.


  6. There are a fair number of Delphi grids still in active development. One is Developer Express :  VCL Data Grid. It is expensive but has a lot of features and is the one I use. It has a provider mode where it basically handles querying the database for you when doing sorting / filtering in the grid itself which works much better on larger datasets than the more common pull all data locally (which it also supports). It has a bit of learning curve but once figured out you get a lot functionality with little or no code. 

     

    VCL DataGrid - High Performance Grid for Delphi & C++Builder (devexpress.com)

     

    Read question too fast. It does not support FMX. They tested the water with FMX but seems there was not enough demand from their current customers to make it viable. 


  7. I also think Delphi should transition to a 64 bit IDE so it works better with large projects. As well with high entropy ASLR it could make it easier to find memory bugs in the IDE/plugins/design time components as most addresses would be invalid vs valid when the IDE uses a lot of memory. The breaking change of the IDE not running on 32 bit operating systems is a non-issue at this point. 

     

    I have no problem with components living / running in the IDE. Perhaps Embarcadero could pay to get a component development guide updated or written along with some helpful tooling / debugging support to help revive wider 3rd party component production. 


  8. The IDE certainly scans the various library path directories a lot and when it does so the performance probably tanks with a Parallels shared home directory vs a real directory. Same thing happens for invalid paths - the IDE spends a lot of time waiting / working to the point it feels like it has locked up. This applies to a lot of virtual / network / shared directories that end up having  a lot of access calls - they will perform very poorly compared to local files on a native file system.


  9. See this most often when ASCII is automatically cleaned up typographically for printing by doing some conversions like dash to em dash. If this text is put back / interpreted as ASCII bytes the various UTF8 encodings of the typographical replacements end up us multiple characters each like a minus/dash that was converted to em dash then ending up as â€ ". Need to find where the problem is - the data in the PDF itself could already be corrupted this way or it can happen at some other stage including in the PDF -> Text or in how you load the text. 

     

    Often even if you do interpret the encodings correctly so there is a — (em dash) instead of  â€ " the equivalent replacements might be worthwhile to convert text back to plain ASCII.

    • Like 1

  10. I worry about the maintenance of applications using some of these cloud services. Sourcing a replacement library/component/backend between major releases or updates is a walk in the park compared to having to replace a cloud service possibly live or at least on the cloud service provider's schedule vs your own. 

    • Like 1

  11. By default the IDE keeps a history of saves. What is showing up there? (bottom right of edit: History. should list revision contexts including file, buffer and any history files).

     

    I know sometimes the same file accessed with different paths in different editors can end up with issues. 

     


  12. Get another developer to clone/copy one of your projects and try working on it. Have them copy / duplicate NOTHING of your system/network/software/development configuration. Something sounds off with your system/configuration/network/etc. 

     

    Long IDE freezes can be as simple as dead paths being searched - Windows can take a long time to timeout checking a network drive where the other side doesn't respond at all for example and Delphi tends to re-search the same paths often making it take even longer. The worst would be an intermittently accessible path / storage location which would cause all sorts of hard to discern problems. Even bad sleep/resume of a storage device can cause problems or delays. 

     

    For all the internal errors - if they happen reliably you might be able to narrow it down to small test case(s) - they usually do get fixed if there is a reliable way to reproduce both so they can see the error and test a fix. 

    • Like 1

  13. Not really a Delphi issue. It is from breaking changes in Microsoft SQL Server ODBC driver 18.  Validating the certificate is just part of what happens when encrypt it set to yes which is now the default. Connection strings or certificate configurations need to be updated. 

     

    Changes

    • BREAKING CHANGE - Default Encrypt to Yes/Mandatory.
       

    Ref: ODBC Driver 18.0 for SQL Server Released - Microsoft Community Hub


  14. There is a set of licensing APIs (Licensing Reference  |  Android Developers). One optional part looks like it might be useful:

     

    DeviceLimiter Interface that you implement if you want to restrict use of an application to a specific device. Called from LicenseValidator. Implementing DeviceLimiter is not recommended for most applications because it requires a backend server and may cause the user to lose access to licensed applications, unless designed with care.

  15. I usually turn off the welcome page or remove all the plugins from being displayed (in the latest Delphi releases). The content has little value in the most recent releases and zero value in older versions where there is never anything "new" anyway.  

     

    Likely an Internet connection issue or the Getit server is overloaded / not responding quick enough. 

     

     

    • Like 1
×