Jump to content

Kryvich

Members
  • Content Count

    402
  • Joined

  • Last visited

  • Days Won

    8

Everything posted by Kryvich

  1. @David Heffernan How you think: is RTTI information concentrated in one place of an executable file, or scattered around it? Open any EXE file and find the answer. I would prefer that the RTTI information be in a separate segment (resource) of the EXE file, and preferably in a separate file. But you are right about performance: it is better to test, and then draw conclusions.
  2. @stijnsanders I do not know such special settings. But you can use conditional compiler directives to leave RTTI for the Debug build: {$IFDEF RELEASE} {$WEAKLINKRTTI ON} {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} {$ENDIF}
  3. @Bill Meyer That's the whole point: if Embarcadero can get the IDE to work on a such project, then CodeInsight will work flawlessly on projects with a well-designed architecture.
  4. A memory table with indexing and filtering (Filter := "like 'bl*'") would help. If you haven't TkbmMemTable, there is TFDMemTable and TClientDataSet even in the Community Edition. Use BeginBatch, EndBatch to speed up the loading. Of course, you can write a low level code and try to squeeze the maximum speed, as advised above.
  5. Kryvich

    MvmStartKit now supports 10.3 Rio

    I tried MvvmStarterKit\Demo\VCL\MVVMDemo.dproj in Delphi 10.3. TYPE_KIND_TO_VALUE_TYPE should be appended with TgoValueType.Unsupported); // tkMRecord Demo program has memory leaks. The latest commit to https://github.com/DelphiPraxis/MvvmStarterKit dated October, 9. I suppose you forgot to push your Delphi 10.3 update to GitHub.
  6. Kryvich

    Releasing memory devoted to arrays

    A demo program that demonstrates the bug would help the community to help you.
  7. Kryvich

    mORMot running on Delphi 10.3 Rio

    So now (among other) we have FireDAC - a DAC for Delphi packed with advanced features, and the lightning fast Zeos - a free and open source lib. Both libraries can work in conjunction with mORMot. Having a choice is always good.
  8. It takes time to update and test all components in Delphi 10.3. In GetIt in 10.2, I see 202 packages right now, and in 10.3 - 55 packages (at the start it was 34).
  9. Alternatively you can try a memory table and compare it with TStringList. I recommend TkbmMemTable.
  10. Kryvich

    MvmStartKit now supports 10.3 Rio

    What is the difference between this kit and https://github.com/grijjy/MvvmStarterKit, in short?
  11. Kryvich

    mORMot running on Delphi 10.3 Rio

    The Zeos test results are astounding. What about the capabilities of this library? Does it support the on-demand rows fetching, rows pagination, delayed fetching (to postpone a BLOB and nested datasets loading)? FireDAC can do it: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Fetching_Rows_(FireDAC)
  12. Very good library to test the CodeInsight and ErrorInsight features.
  13. Kryvich

    Rio has a broken REST Library

    As I understand WinHttpQueryHeaders should return an Unicode string, so LSize should be even. But we can foresee any variant, allocating enough space for the result string: SetLength(Result, (LSize+1) div SizeOf(Char));
  14. Kryvich

    Rio has a broken REST Library

    Before the second call of WinHttpQueryHeaders there is a check: if GetLastError <> ERROR_INSUFFICIENT_BUFFER then raise ENetHTTPException.CreateResFmt(...); It means that the call of function WinHttpQueryHeaders occurs only if GetLastError = ERROR_INSUFFICIENT_BUFFER. According to the API: If the function fails and ERROR_INSUFFICIENT_BUFFER is returned, lpdwBufferLengthspecifies the number of bytes that the application must allocate to receive the string.
  15. Kryvich

    GetIt pkg mgr problems

    @FredS No, it din't work for me. Can you find CodeSiteExpressPkg260.bpl in "c:\Program Files (x86)\Raize\CS5\Bin" ? Update: I found this file here: "c:\Program Files (x86)\Raize\CS5\Deploy\Win32\", copied it to "c:\Program Files (x86)\Raize\CS5\Bin" and now CodeSite works! https://quality.embarcadero.com/browse/RSP-21763
  16. I used the Migration Tool to move my syntax highlighting from 10.2.3 to 10.3.
  17. Kryvich

    Rio has a broken REST Library

    Weird. Waiting for your findings. The good thing is that CE comes with REST sources, so a competent enthusiast can help find a bug in the library.
  18. Kryvich

    mORMot running on Delphi 10.3 Rio

    So MySQL database + FireDAC- mORMot-Windows service could be compiled and run even with Community Edition, if the database and the service are located on the same machine.
  19. Kryvich

    Android Z-Order, Native Controls, and 10.3 Rio

    The main goal in 10.3 was to introduce Z-Order. So we can now place controls over video as example. Broader support of native controls planned for the first half of 2019, for 10.3.x updates. https://community.embarcadero.com/article/news/16638-rad-studio-august-2018-roadmap
  20. Kryvich

    GetIt pkg mgr problems

    Update: CodeSite Express 5.3.3 appeared in GetIt in Delphi 10.3. Update2: Oops: Can not find CodeSiteExpressPkg260.bpl. Forgot to include in the installation?
  21. Kryvich

    mORMot running on Delphi 10.3 Rio

    Detailed feature matrix for 10.3: https://www.embarcadero.com/features/feature-matrix
  22. Kryvich

    Found the cause of the AV on exiting the Delphi IDE

    Perhaps it makes sense to put the code of form detection into a separate unit (if possible)? Then you will not have to add a new dependency between the old units.
  23. Kryvich

    Access violations when closing the IDE

    Is there a way to check for a memory leak in an IDE package? ReportMemoryLeaksOnShutdown does not work in packages.
  24. In my IDE plugins I have Data module with main logic and notifiers and other objects, which are created and deleted by the module (DataModuleCreate, DataModuleDestroy). The data module is created and destroyed automatically: initialization DataModule1 := TDataModule1.Create(nil); finalization DataModule1.Free; end. When we create an interfaced object and store a reference to it in a variable, its count of references increases. Are you sure that your menu items are really released after use? I followed this instruction when I created my plugins. It recommends to use a Data Module: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Extending_the_IDE_Using_the_Tools_API
  25. I have not worked with menu notifiers before, but I think the principle should be the same as with other OTA notifiers. You do not need to store a Notifier object. All you have to store is its index, to remove your notifier when your package is finalized. var MenuItemNotifierInd: Integer; procedure Register; var manager: IOTAProjectManager; projectItemNotifier: IOTAProjectMenuItemCreatorNotifier; begin MenuItemNotifierInd := -1; if not Supports(BorlandIDEServices, IOTAProjectManager, manager) then Exit; projectItemNotifier := TMyProjectMenuItemNotifier.Create; MenuItemNotifierInd := manager.AddMenuItemCreatorNotifier(projectItemNotifier); end; ... finalization if MenuItemNotifierInd >= 0 then //... remove notifier end. For the menu item use an interface instead of an object too: var item: IOTAProjectManagerMenu; begin item := TMyProjectMenuItem.Create(Project); item.Caption := 'Test123'; item.Enabled := true; item.Position := 0; ProjectManagerMenuList.Add(item);
×