-
Content Count
402 -
Joined
-
Last visited
-
Days Won
8
Everything posted by Kryvich
-
RTTI and EXE file size: how to shrink your executable 2 times
Kryvich replied to Kryvich's topic in RTL and Delphi Object Pascal
@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.- 16 replies
-
RTTI and EXE file size: how to shrink your executable 2 times
Kryvich replied to Kryvich's topic in RTL and Delphi Object Pascal
@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}- 16 replies
-
IDE hangs on code completion, find declaration, parameters tooltip.
Kryvich replied to vhanla's topic in Delphi IDE and APIs
@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. -
Speed up reading multiple text files
Kryvich replied to dummzeuch's topic in RTL and Delphi Object Pascal
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. -
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.
-
A demo program that demonstrates the bug would help the community to help you.
-
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.
- 13 replies
-
- mormot
- delphi10.3
-
(and 4 more)
Tagged with:
-
GetIt: missing all the TurboPower component
Kryvich replied to gkobler's topic in Delphi IDE and APIs
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). -
Speed up reading multiple text files
Kryvich replied to dummzeuch's topic in RTL and Delphi Object Pascal
Alternatively you can try a memory table and compare it with TStringList. I recommend TkbmMemTable. -
What is the difference between this kit and https://github.com/grijjy/MvvmStarterKit, in short?
-
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)
- 13 replies
-
- mormot
- delphi10.3
-
(and 4 more)
Tagged with:
-
IDE hangs on code completion, find declaration, parameters tooltip.
Kryvich replied to vhanla's topic in Delphi IDE and APIs
Very good library to test the CodeInsight and ErrorInsight features. -
Rio has a broken REST Library
Kryvich replied to Jacek Laskowski's topic in RTL and Delphi Object Pascal
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)); -
Rio has a broken REST Library
Kryvich replied to Jacek Laskowski's topic in RTL and Delphi Object Pascal
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. -
@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
-
I used the Migration Tool to move my syntax highlighting from 10.2.3 to 10.3.
-
Rio has a broken REST Library
Kryvich replied to Jacek Laskowski's topic in RTL and Delphi Object Pascal
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. -
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.
- 13 replies
-
- mormot
- delphi10.3
-
(and 4 more)
Tagged with:
-
Android Z-Order, Native Controls, and 10.3 Rio
Kryvich replied to Mohammed Nasman's topic in Cross-platform
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- 6 replies
-
- delphi rio
- z-order
-
(and 2 more)
Tagged with:
-
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?
-
Detailed feature matrix for 10.3: https://www.embarcadero.com/features/feature-matrix
- 13 replies
-
- mormot
- delphi10.3
-
(and 4 more)
Tagged with:
-
Found the cause of the AV on exiting the Delphi IDE
Kryvich replied to dummzeuch's topic in GExperts
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. -
Is there a way to check for a memory leak in an IDE package? ReportMemoryLeaksOnShutdown does not work in packages.
-
[OpenToolsAPI] Project menu item - Access violation after Uninstall
Kryvich replied to Neutral General's topic in Delphi IDE and APIs
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 -
[OpenToolsAPI] Project menu item - Access violation after Uninstall
Kryvich replied to Neutral General's topic in Delphi IDE and APIs
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);