Jump to content

david berneda

Members
  • Content Count

    85
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by david berneda

  1. Yes Chart1.Axes.Left.Texts.Separation :=0 should do this, just punt one label after the other. The 0 value means the percentage of distance between labels, relative to label's size (width or height).
  2. Another workaround for this AV bug, is to clear the chart legend items after deleting the series: procedure TfrmMain.btnDelPensClick(Sender: TObject); var I: Integer; begin chtData.FreeAllSeries; { for I := chtData.SeriesList.Count - 1 downto 0 do chtData.SeriesList.Delete(I); chtData.Invalidate; } chtData.Legend.Items.Clear; // <--- THIS end;
  3. david berneda

    for loop variable value after the loop

    Technically is 30 yo 😁
  4. If this bug is affecting you right now, we can send you a temporary patch but it has not been fully tested, its just the affected units recompiled dcu (no packages).
  5. The fix was for a different problem but it also fixed this particular one. We sent new builds to Embarcadero ahead of time, during the beta period, that was before this fix. We will publish a patch soon at steema.com, with this fix and other fixes if new bugs appear, hopefully not.
  6. Perfect, we could also reproduce it and found the cause. The bug was fixed some time ago but the fix was not included in RAD 13.0. It is related to chart legend items. I'll send you now a private message with a link to a potential fix patch.
  7. Just found this repo, (its not mine). Comparison and tests of many Delphi / C++ json libraries, including System.Json. https://github.com/hydrobyte/TestJSON
  8. One thing you might try is to replace this code with a call to FreeAllSeries, because calling Delete does not destroy the series. procedure TfrmMain.btnDelPensClick(Sender: TObject); var I: Integer; begin chtData.FreeAllSeries; { for I := chtData.SeriesList.Count - 1 downto 0 do chtData.SeriesList.Delete(I); chtData.Invalidate; } end;
  9. was: // Thanks for the testing project, we'll investigate it and let you know. I couldn't reproduce the AV just clicking the add and delete buttons, should I click or move the mouse after that?
  10. I have pending to add a "brute force" test to verify these functions work 100% correct. Basically a loop from zero day (Dec 30th 1899) or negative, til year 3000 or more, checking and comparing with the RTL ones. (Just to be sure its fine)
  11. Ubuntu Linux fmx test also shows speed gains of these "Fast" datetime functions:
  12. david berneda

    Where is GetTickCount64 in Delphi XE7

    More tech info: https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/api/ntexapi_x/kuser_shared_data/index.htm
  13. david berneda

    What could I use to draw custom graphs ?

    Maybe you can draw non-repeated points? There are some algorithms to average min max at every X, and dont paint repeated data. TeeChart does not use Polyline. https://github.com/Steema/TeeChart-VCL-FMX-Samples/blob/ffa84bce472cd3ec17fab60c53c178da9e4047e6/VCL/TeeNew/FastLine_DrawAll.pas#L54
  14. david berneda

    What could I use to draw custom graphs ?

    Yes from many years ago, using gdi+ or opengl (and now Skia) in vcl. Fmx has antialias by default. Antialias can be enabled/disabled at runtime at any time (to draw 1 pixel line widths for example). About opengl, with TeeChart GLCanvas the speed is much more greater, maybe 100x vs gdi or skia (if using a fast gpu) but all (or mostly) is done at the cpu. I've always wanted to develop a TeeCanvas derived class to wrap Graphics32, but never finished it.
  15. david berneda

    loading example data into fmx TStringGrid

    Thanks for the unload tip ! I'll check with our grids if the bug happen.
  16. david berneda

    What could I use to draw custom graphs ?

    Yes you can use the Chart1.Canvas methods that wrap around a real canvas (gdi, gdi+, opengl, skia etc) to draw anything. Axis have many property settings to position and configure them (and extra TChartAxis can be created). The "TeeNew" folder demo here, has aprox 700 forms, each showing different features of many categories: https://github.com/Steema/TeeChart-VCL-FMX-Samples/tree/main/VCL
  17. david berneda

    loading example data into fmx TStringGrid

    As an alternative, this is our free api that can load data into grids (Vcl and Fmx), just doing this: uses BI.Xml; BIGrid1.Data := TBIXml.FromFile('country.xml') https://github.com/Steema/TeeBI
  18. david berneda

    loading example data into fmx TStringGrid

    I had a similar bug but I couldn't reproduce it anymore. Looks like RemoveColumn triggers some calls that act too late, when Position etc are already destroyed (use-after-nil). I did submit a QC issue but never was activated as I couldn't add reproduceable steps.
  19. Small free tool to output all possible constants and values from the RTL, VCL and Firemonkey apis. Updated to latest RAD 13.0 Florence https://github.com/Steema/Delphi_Inspect/tree/main Includes Canvas benchmarks (FMX, Skia) using TeeChart to display results.
  20. The FastDateTime repository has been tested with RAD 13.0 Florence, all fine, similar speed gains than 10.1 Rio. I've added an indentical Firemonkey FMX test project to benchmark all the non-Windows platforms. https://github.com/davidberneda/FastDateTime
  21. Announcing the availability of the latest TeeChart VCL/FMX 2025.45 release with full RAD Studio 13 Florence (RX/DX/CX) support: steema.com/entry/634 #delphi #RADStudio13 #developers #programming #Delphi13 #charts #development #charting
  22. david berneda

    [Ann] TeeChart for RAD Studio 13 Florence released

    One of the hidden new features in RAD 13 is the TeeChart (VCL and FMX) "Lite" free version has been upgraded from 2021 to 2025.
  23. david berneda

    [Ann] TeeChart for RAD Studio 13 Florence released

    https://steema.com/entry/634
  24. Oops I have to re-test and benchmark that old code with the latest RTL, to make sure its still vaiid and worth it. About fast code, I'm interested in sse or avx speedups of array sum and min max, without cpu detection overheads
  25. david berneda

    New Delphi features in Delphi 13

    Ah nice catch ! I personally like to abuse of blank lines, so I quickly see the problem because after the doX; my eyes expect a blank line. Also blank line after each end; (except if the next line is also an end; )
×