Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 06/22/21 in all areas

  1. David Heffernan

    Interfacing Unicode string to DLL PAnsiChar

    Don't rely on whether or not a function is inlined in order for the code to work. After all, it might not be possible to inline it.
  2. BS1 source code is available for Delphi 10.4.2 and all previous versions since Delphi 5. - BS1 Accounting - BS1 Professional Time Billing - BS1 Enterprise Accounting - BS1 Enterprise Accounting with Manufacturing Developers may license the source code for use in their custom Delphi solutions royalty-free. Versions for SQL Server (ADO) and DBISAM databases. BS1 Accounting is an integrated multi-currency accounting system: General Ledger, Accounts Payable, Accounts Receivable, Inventory, Sales Analysis, and Bank Reconciliation. BS1 Professional is an integrated time billing and accounting system: Accounts Payable, Accounts Receivable, General Ledger, Inventory, Time Billing, Sales Analysis, and Bank Reconciliation. BS1 Enterprise Accounting is a multi-currency distribution and accounting system: General Ledger, Accounts Payable, Accounts Receivable, Inventory, Purchase Orders, Sales Orders and Quotes, Sales Analysis, and Bank Reconciliation. BS1 Enterprise Accounting with Manufacturing is a multi-currency manufacturing, distribution and accounting system: General Ledger, Accounts Payable, Accounts Receivable, Inventory, Purchase Orders, Sales Orders and Quotes, Manufacturing, Sales Analysis, and Bank Reconciliation. Source code info www.dbsonline.com/source.htm Comments from Delphi developers www.dbsonline.com/comments.htm -- Trevor Davis Davis Software www.dbsonline.com
  3. @Stefan Glienke If you can, please take a look at a new mORMot 2 unit: https://github.com/synopse/mORMot2/blob/master/src/core/mormot.core.collections.pas In respect to generics.collections, this unit uses interfaces as variable holders, and leverage them to reduce the generated code as much as possible, as the Spring4D 2.0 framework does, but for both Delphi and FPC. Most of the unit is in fact embedding some core collection types to mormot.core.collections.dcu to reduce the user units and executable size for Delphi XE7+ and FPC 3.2+. Thanks a lot for the ideas! It also publishes TDynArray and TSynDictionary high-level features like JSON/binary serialization or thread safety with Generics strong typing. More TDynArray features (like sorting and search) and also TDynArrayHasher features (an optional hash table included in ISynList<T>) are coming.
  4. David Heffernan

    Binary size, how-to make it smaller?

    If you really need to do this then you probably need to switch to a different tool, or use an old version of Delphi. Modern Delphi just produces huge executables. Or you could just decide not to worry about a few MBs.
  5. dummzeuch

    Binary size, how-to make it smaller?

    I can't really imagine writing any code > WriteLn('hello world'); without using SysUtils and Classes. And I doubt that many will go this way. Eliminating the VCL is a different matter. That's possible if the lib doesn't need a UI. But I would probably not even try that nowadays, not to just save a few megabytes.
  6. Pat Foley

    Binary size, how-to make it smaller?

    That can save 400K For big savings remove Classes 1.5 M and SysUtils .2 M from the uses clause for a smaller lib.
  7. Lars Fosdal

    Binary size, how-to make it smaller?

    Turn off RTTI if you can.
  8. Remy Lebeau

    Interfacing Unicode string to DLL PAnsiChar

    Your 1st approach using StringToAnsiCPointer() will never work, since the AnsiString will go out of scope and be destroyed before the PAnsiChar pointer can be passed to the DLL. Your second approach using an AnsiString typecast at the call site will work fine, though you don't actually need the Length() check at all since an AnsiString consists of a nil pointer when empty, so you can just use that inner pointer as-is, by type-casting the AnsiString to a Pointer before casting to PAnsiChar, eg: function CompilerEncryptFile(const TextFileName: string; Key: TCNCEncryptKey; const EncryptedFileName: string): Longint; begin Result := _CompilerEncryptFile ( PAnsiChar(Pointer(AnsiString(TextFileName))), @Key, PAnsiChar(Pointer(AnsiString(EncryptedFileName))) ); end;
  9. Edwin Yip

    TBCEditor text editor component

    Great news! It seems that TBCEditor is coming back as open open source again as github.com/TextEditorPro/TTextEditor But looking at the texteditor.pro site, but quite sure the github repo is by Lasse the same author of the old TBCEditor. Not sure what improvements has been brought by the new version and but it seems doesn't support CJK characters, pity...
  10. PeterPanettone

    TBCEditor text editor component

    I have now tried SynEdit from the Delphi GetIt Package Manager: I have tried out the demos: I am very unsatisfied.
×