Lajos Juhász
Members-
Content Count
986 -
Joined
-
Last visited
-
Days Won
12
Everything posted by Lajos Juhász
-
This is a bug in Delphi 10.4. It's working as far as I can test in Delphi 11 (unfortunately the release date of the Community Edition is still unknown). On the other hand there are another bugs in Delphi 11 with custom title bars.
-
Has anyone tried "DelphiLSP" for Visual Studio Code yet?
Lajos Juhász replied to Perpeto's topic in General Help
I didn't tested Visual Studio Code. It uses the same thing. From Delphi 11 unfortunately only the LSP based code completion is available and it's not good enough (capable only to handle Hello World applications). -
I don't use that so no idea. Tried for fun in Delphi 11 to select an instance and hit Search - Find class first time I got: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
-
It was strange that on live panel at an Embarcadero event there was nobody to represent Embarcadero (just to answer technical questions).
-
https://docwiki.embarcadero.com/Status/en/FireDAC_Database_Support Delphi 11 supports: v 1.5 - 3.0
-
Ok, at DelphiCon2021 David Millington answered that the bookmarks are coming soon, besides the HDPI issue they are working how it will be integrated in the IDE (whatever that means).
-
First they have to resolve the bugs in the HDPI code in the VCL. I hope that they will resolve some issues in the update 1. *Can someone move the HDPI discussion into a new thread as we are discussing a bit different topic?
-
Delphi’s TZipFile working on a stream
Lajos Juhász replied to dummzeuch's topic in Tips / Blogs / Tutorials / Videos
You could easily debug and optimize this code. Calling zip.FileNames in the loop is very unhealthy as it will construct the list for every iteration. var lFileNames: TArray<string>; begin var vZipContents := TStringList.Create; var Zip := TZipFile.Create; try if TZipFile.IsValid(fZipfileName) then begin Zip.Open(fZipfileName, zmRead); lFileNames := Zip.FileNames; for var I := Low(lFileNames) to High(lFileNames) do begin vZipContents.Add(lFileNames[I]); end; Memo1.Lines := vZipContents; end; finally Zip.Free; vZipContents.Free; end; end; *(Edit: of course in this code there is no benefit to use vZipContents it would be better to use Memo1.Lines.BeginUpdate and Memo1.Lines.EndUpdate and insert the file names directly to the memo.) -
Marco Cantu already mentioned it DelphiCon 2021 on Tuesday that they're working both on the IDE and VCL as they discovered some issues with highDPI (without any details of course).
-
Most probably every application (I saw Windows 11 on YT videos and https://docs.microsoft.com/en-us/windows/apps/design/controls/checkbox).
-
Width of GroupBox on inherited form changes to default in Delphi 11
Lajos Juhász replied to David Marcus's topic in VCL
It is a known issue set Scaled property to true (on the form). When scaled is false Delphi in some cases ignores the width/height properties. Welcome to the way how Delphi is managing high DPI. Btw. you should report this as far as I known there is no report with Scaled false and TGroupbox. -
This should fail for exe as since Delphi 7 it can be only used in packages or dlls not executables.
-
There is an open RSP for this.
-
-
Thoughts on using begin end merely to limit inline var scope.
Lajos Juhász replied to MarkShark's topic in RTL and Delphi Object Pascal
Saves you from declaring the type when it's working (eg. Currency). -
Thoughts on using begin end merely to limit inline var scope.
Lajos Juhász replied to MarkShark's topic in RTL and Delphi Object Pascal
program Project1; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; begin try { TODO -oUser -cConsole Main : Insert code here } var x:=5; inc(x, DayOfWeek(now)); writeln(x); if x<5 then {break point here} writeln('x<5') else writeln('x>=5'); readln; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end. The debugger will say: 'Symbol was eliminated by linker'. In my opinion it's still not solved in debug configuration. I am still going to wait for fully implemented inline variables. -
If you've the source of FireDAC you can debug FireDAC.Stan.Expr there are 4 cases when this exception is raised.
-
You can test it for yourself: function GetCurrency: Currency; begin Result := 8.52; end; var A: Currency; C: double; D: extended; begin A := GetCurrency; var B := GetCurrency(); // 2 C:=GetCurrency; D:=GetCurrency; if A = B then WriteLn('A = B') else WriteLn('A <> B'); if B = C then WriteLn('B = C') else WriteLn('B <> C'); if B = D then WriteLn('B = D') else WriteLn('B <> D'); ReadLn; end. The result is: A <> B B <> C B = D
-
I read that, unfortunately I have no access to your working environment I can only confirm what's working at my side. I do not have D10.2.3 to test, tried with XE5 it's also working without a problem there.
-
Which Delphi version. I've never used TFDTable but tested successfully in D11 the code: ProjectsFDTable.Filter:='Category =' +QuotedStr('Tools'); ProjectsFDTable.Filtered:=true; It's working.
-
Of course you can parse the statements, however for a stored procedure call you must have a list of procedures that returns cursors.
-
Why??! (they've changed the way main menu works in the IDE).
Lajos Juhász posted a topic in Delphi IDE and APIs
@David Millington . I have only one question WHY!!!!!! I really like how the main menu in Windows works. You do an ALT+F opens the file menu and then select the submenu. That way should work every program. Now for some reason it's changed in the IDE. You have to press and release the ALT only then the main menu is selected. For years I am using Alt+F O to open files. Now the same sequence leads a letter o in the source (in case I have something selected that is overwritten). -
Why??! (they've changed the way main menu works in the IDE).
Lajos Juhász replied to Lajos Juhász's topic in Delphi IDE and APIs
Ok, the problem with menu shortcuts most probably is simply a conflict. I've docked Unit Dependency Analyzer. Now ALT+E instead of Edit in the main menu will activate the dependency analyzer (&Errors). -
In case of the FireDAC there is already OpenOrExecute.
-
1.) Create a new application. 2.) Set scaled false for the main form, set it's width to 100x100 3.) Run the application. Delphi will ignore the size of the from inside the DFM and will display the default 640x480 form. I cannot check the QP portal as I cannot log into. I admit this is a perfect tool to check whenever you have somewhere scaled false but also quite an interesting bug. Examine the DFM there is no With or Height for the form: object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 61 ClientWidth = 84 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -12 Font.Name = 'Segoe UI' Font.Style = [] Scaled = False OnActivate = FormActivate PixelsPerInch = 96 TextHeight = 15 object Label1: TLabel Left = 33 Top = 43 Width = 34 Height = 15 Caption = 'Label1' end end Add those properties to the DFM and save it. Run the program the form is displayed correctly. Display the form again (Alt + F12) execute the application Width and Height are deleted from the DFM and again the form will ignore the ClientHeight/ClientWidth properties.