Jump to content

Cristian Peța

Members
  • Content Count

    451
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by Cristian Peța

  1. Cristian Peța

    for loop variable value after the loop

    And where is this behavior documented? Actual documentation quoted above is wrong then?
  2. Cristian Peța

    Image32 - 2D graphics library (open source freeware)

    @angusj, Is Image32 intended to be thread-safe? I ask because there is a global var aFontManager in Img32.Text. I told myself: this is not a problem, I will instantiate a TFontManager for every thread. But then I found that TFontCache.AddGlyph() uses this global var aFontManager.... You pushed this code in 7 dec. 2024 EDIT: I see that I can use fFontReader.fFontManager instead of aFontManager. EDIT2: I created a Pull request. My first one and hope it is ok. Thank you for your work on this library!
  3. Cristian Peța

    What could I use to draw custom graphs ?

    If you profiled this then how much from that 50 ms take the calls to draw lines.
  4. Cristian Peța

    What could I use to draw custom graphs ?

    How many lines? GDI+ is slow but I suppose you are using GDI here. I have 174 ms for 46000 lines. EDIT: That means 13300 lines per 50 ms
  5. Cristian Peța

    What could I use to draw custom graphs ?

    Use a profiler and see what takes so much. I doubt that GDI drawing takes 50 ms for this on a modern CPU.
  6. Cristian Peța

    FireDAC generated SQL

    FireDAC Monitor has nothing to do with forms. It receives data from FDConnection.
  7. Cristian Peța

    FireDAC generated SQL

    Yes, no problem. And what has this to do with FireDAC Monitor tool properties? BTW, you can start yourself the Monitor from the Bin folder, not necessary to use the link from the IDE.
  8. Cristian Peța

    FireDAC generated SQL

    Why? It should be like this:
  9. Cristian Peța

    Need help investigating an app crash

    I second this. Here I don't see line number in IdTask.TIdTask.DoBeforeRun. I suppose it is the first line. Also the call stack is not what it should. I would like also assembler code and register values. Address 00000004 is FBeforeRunDone in TIdTask.DoBeforeRun. TIdTask = class(TObject) protected FBeforeRunDone: Boolean; .... end; procedure TIdTask.DoBeforeRun; begin FBeforeRunDone := True; <-- "Access violation at address 0098638C in module 'MyStuff.exe'. Write of address 00000004" BeforeRun; end; So a reference to TIdTask object is nil but we don't see the call stack to know who is calling this nil reference. A proper call stack is missing.
  10. Cristian Peța

    ICS 8.71 UDP ServerScoket inside a Thread

    It is just a string property. What can compiler complain? But documentation for TWSocketServer says:
  11. Cristian Peța

    A smart case statement in Delphi?

    I prefer something like this: type TMyStrings = (zero, one, two, three, four); function StrToMyString(AString: String): TMyStrings; begin if AString = 'zero' then Result := TMyStrings.zero else if AString = 'one' then Result := TMyStrings.one else if AString = 'two' then Result := TMyStrings.two else if AString = 'three' then Result := TMyStrings.three else if AString = 'four' then Result := TMyStrings.four end; var s: String; begin s := 'three'; case StrToMyString(s) of zero: writeln('zero'); one: writeln('one'); two: writeln('two'); three: writeln('three'); four: writeln('four'); end; //or, if you want interger case Integer(StrToMyString(s)) of 0: writeln('zero'); 1: writeln('one'); 2: writeln('two'); 3: writeln('three'); 4: writeln('four'); end;
  12. Cristian Peța

    A smart case statement in Delphi?

    And what is the benefit? if-then-else is more readable than this.
  13. Cristian Peța

    Why i can't hide Form1 in DLL?

    A DLL is a library and it can run only in the processes of a main application (rundll32 or other app).
  14. I don't have an answer but the edition is in the license. And I don't think there is a public API to read it. But if you run ddc32 with different small projects the messages can tell you something about this.
  15. Cristian Peța

    Extreme slow-down in Windows FMX app UI since upgrading to 12.1

    I updated the report https://embt.atlassian.net/servicedesk/customer/portal/1/RSS-3711
  16. Cristian Peța

    Extreme slow-down in Windows FMX app UI since upgrading to 12.1

    Just wanted to try a fix in FMX.Forms and I found it already there but commented 🤔. First two lines will exit and AlignObjects() will not be called if used Form.BeginUpdate. The Realign will be done anyway after Form.EndUpdate. procedure TCustomForm.Realign; begin // if FDisableAlign or (FUpdating > 0) then // Exit; ... more code if FCanvas <> nil then begin AlignObjects(Self, Padding, FCanvas.Width, FCanvas.Height, FLastWidth, FLastHeight, FDisableAlign); RecalcControlsUpdateRect; InvalidateRect(ClientRect); end; end;
  17. Cristian Peța

    Extreme slow-down in Windows FMX app UI since upgrading to 12.1

    Using arrRect.SetBounds() you avoid a call to AlignObjects because TControl.SetBounds is checking some things before a call to AlignObjects Avoid setting TPosition.X
  18. Cristian Peța

    Extreme slow-down in Windows FMX app UI since upgrading to 12.1

    More or less all Form.Children. AlignObjects().DoAlign() enumerates all Form.Children but it depends a little if the object supports IAlignableObject interface.
  19. Cristian Peța

    Extreme slow-down in Windows FMX app UI since upgrading to 12.1

    FMX.Types.AlignObjects is taking the most time: 97.4% (from VTune) AlignObjects is not called from TControl.Realign and is going fast when rectangles are on TLayout. But when rectangles are on a form, AlignObjects is called from TCustomForm.Realign and is taking the most time FMX.Types.AlignObjects($4BD50A0,$4C4C860,640,480,640,480,False) FMX.Forms.TCustomForm.Realign FMX.Controls.TControlHelper.PositionChanged(???) FMX.Types.TPosition.DoChange FMX.Types.TPosition.SetX(1) Unit1.TForm1.Button1Click($4BEFDE0)
  20. Cristian Peța

    Extreme slow-down in Windows FMX app UI since upgrading to 12.1

    Can you reproduce in a small project that you can post here?
  21. Cristian Peța

    Extreme slow-down in Windows FMX app UI since upgrading to 12.1

    Have you tried with a profiler?
  22. Cristian Peța

    D12 java and Android

    I have 12.2 and it was installed by default in C:\Program Files\Eclipse Adoptium\jdk-17.0.9.9-hotspot All is working for me.
  23. Cristian Peța

    Advise for building a document

    I suppose you want something like this: * ReportTitle (logo + ...) * Header - RichText - Column names (if you need them) * MasterData connected to the table - table fields that will be printed for every table record * Footer - RichText * PageFooter (for Page Numbers)
  24. Cristian Peța

    Advise for building a document

    Reading again I'm asking myself if you know what MasterData is. You connect MasterData to a table and MastedData will be printed for every line in that table. To put a TableObiect into a MasterData is somehow strange for me. You will print a table for every record of a table.
  25. Cristian Peța

    Advise for building a document

    What didn't work? The MasterData is not shown or only TableObiect? Have you set MasterData.DataSet? Do you have something in that table? And you want to print that RishText for every line in that MasterData table?
×