-
Content Count
402 -
Joined
-
Last visited
-
Days Won
8
Posts posted by Kryvich
-
-
My projects is not so big as yours... OK I downloaded the nightly build of mORMot and tried to open several DPR in Delphi 10.3. In the TestSQL3 project, ErrorInsight showed 2 false-positive errors:
- 'Synopse.inc' could not be found in the current project
- 'SynDprUses.inc' could not be found in the current project
TestSQL3.dpr in the mORMot\SQLite3 folder, and these INC files in mORMot folder.
When I replaced {$I Synopse.inc} with {$I ..\Synopse.inc} and {$I SynDprUses.inc} with {$I ..\SynDprUses.inc} these errors are gone.
What other errors in ErrorInsight have you encountered in projects with mORMot?
-
Actually in 10.2.3 the ErrorInsight is pretty adequate. In 10.3 too, except for new syntactic constructions.
Can you show a code sample where ErrorInsight works incorrectly in the newest Delphi releases?
- 1
-
No, GetIt has dynamic content, while ISO is usually updated with hotfixes only. The good news is that the Delphi 10.3 ISO file is already cached by major providers around the world, so most likely you can download it at maximum speed from the cache of your provider.
-
OK right now GetIt in 10.3 works again:
Although I can not find CodeSite. It may not have been updated for 10.3.
-
@John Kouraklis GetIt server is overflowed too. You can try to install from the ISO file if you have the link.
-
GetIt in 10.3 is redesigned. Although right now it is not working anyway.
I think we should wait a day or two until the flow of visitors subsides.
-
-
In 10.2.3 there are:
- TBytes = TArray<Byte> = array of Byte;
- TByteDynArray = array of Byte;
Although they are declared as different types, internally they are the same.
-
@Attila Kovacs I updated the plugin for Delphi 10.3.
BTW There are no file icons on the tabs anymore. Although the checkbox "Show image on tabs" in the settings remained.
- 1
-
Well, well, well... As I understand they decided this at the last moment.
-
We can always "fool" the compiler using pointers.
procedure TestMyStep; var i: Integer; begin for i := 1 to 10 {step 2} do begin Writeln(i); PInteger(@i)^ := PInteger(@i)^ + 2-1; end; Readln; end;
But we must understand what we are doing. The compiler checks the counter for an exact match with the final value. If in your (or my) example the step size would be 3, we would get an infinite loop.
-
-
function StringToCharArray(const S: string): TCharArray; begin PChar(Result) := PChar(S); end;
- 1
-
QuoteThis is compatible in terms of parameters with the Windows API of the same name, so an existing call to the API in one of your components gets redirected to the method, which in turn calls GetSystemMetricsForWindow passing the control's parent handle as parameter.
If I understand properly, to get a form's handle that a component belongs to, you need to use its Owner property, not the Parent property.
type TForm1 = class(TForm) Panel1: TPanel; Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin if Button1.Parent.Handle = Panel1.Handle then ShowMessage('My parent is Panel1'); if (Button1.Owner as TWinControl).Handle = Form1.Handle then ShowMessage('My owner is Form1'); end;
Good addition BTW!
-
@GreatDayDan XE8 packages work great for XE8 and higher, including 10.2.3. You do not need to copy something, or make changes to the library code.
-
@Bill Meyer For Delphi 2007 you can find them here: HKEY_CURRENT_USER\Software\Borland\BDS\5.0\ToolForm\Mapping
-
I just downloaded the library from GitHub: https://github.com/graphics32/graphics32.
They added some fixes and changes compared to the official version on SourceForge.
On Delphi 10.2.3 everything was compiled without errors (Win32):
- ...\Source\Packages\XE8\GR32.groupproj -- Build all, install GR32_D package.
- Add ...\Source to your library path (Tools | Options | Environment options | Delphi options | Library | Platform 32-bit Windows | Library path.
- ...\Examples\Examples.groupproj - Build all.
There was the unit FastMM4 in one of the examples - just delete it from the uses clause.
-
It's hard to find a good short shortcuts in IDE that are still free. I found Ctrl-Shift-NumPad- / NumPad+, and made a new plugin for Delphi. You can download it from GitHub and compile for Berlin.
- 1
-
@uligerhardt It seems that it does not. Neither for records, nor for arrays.
function GetRec: TRec; begin // Forgot to assign Result... end; function GetArr: TArray<Integer>; begin // Forgot to assign Result... end; var rec: TRec; arr: TArray<Integer>; begin rec.Data := 255; rec := GetRec; Writeln('rec.Data = ', rec.Data); // = 0 SetLength(arr, 1000); arr := GetArr; Writeln('Length of arr = ', Length(arr)); // = 0 Readln; end.
-
Found on Stack Overflow:
QuoteAnother option is install Gexperts, and use the expert IDE menu shortcuts, This expert enables you to configure any of the IDE menu shortcuts.
- 1
-
Well I found the bindings:
QuoteFinding the Next and Previous Changes
As you edit code, you can use keystrokes to quickly navigate to the Next and the Previous changes that you have made. The keyboard shortcuts are:
-
Ctrl+Shift+F7
-- moves to the previous line modified since the file was opened (green marking in the gutter). -
Ctrl+Shift+F8
-- moves to the next line modified since the file was opened (green marking in the gutter). -
Alt+Shift+F7
-- moves to the previous line modified since the last save (yellow marking in the gutter). -
Alt+Shift+F8
-- moves to the next line modified since the last save (yellow marking in the gutter).
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Code_Editor
- 1
- 1
-
-
I did not find any bindings for them, but it’s possible to write a small package that will add such functions and keyboard shortcuts for them.
The best option would be if the IDE would allow the user to customize the keyboard shortcuts for all actions.
-
@Attila Kovacs OK I found them too in TEditorActionLists. I do not think these are some "secret" functions. As I understand, they move cursor to the previous/next line in the editor, marked as modified (yellow bar) or saved (green bar).
-
Still, it is not clear why the compiler did not issue a warning about an unassigned Result. I minified the code to make it clearer.
program TestUnassignedResult; {$APPTYPE CONSOLE} type TRec = record Data: Byte; function NS: TRec; end; function TRec.NS: TRec; begin Writeln('I''m in NS'); // W1035 Return value of function 'NS' might be undefined <-- not showed!!! end; begin //.. end.
Desktop Layouts in 10.3
in Delphi IDE and APIs
Posted
Save desktop? It's here: