Jump to content

Lars Fosdal

Administrators
  • Content Count

    3483
  • Joined

  • Last visited

  • Days Won

    114

Everything posted by Lars Fosdal

  1. Lars Fosdal

    System.Net.Sockets

    Any plans to add Android/iOS support in the future?
  2. Lars Fosdal

    Feedback Request - FastReports vs ReportBuilder?

    We use FastReports for simple reports, and it has been somewhat challenging due to quirky behaviours such as not liking to be used in parallell threads. Since we didn't need client tools for report design, but only crafted the reports in the development phase, it was chosen due to being available out of the box. We also use a server version of Crystal Reports that is fed through database queue tables and driven by a standalone integration to produce labelling and documents.
  3. Delphi 11.3 28.0.47991.2819 (Update 3 + Patch 1) Off-topic: Ctrl+O + Ctrl+O behaves weirdly, IMO. It inserts at top of file instead of at cursor, and it doesn't respect existing options like {$APPTYPE CONSOLE}
  4. Why does your sim code execute in the expected order for me?
  5. Lars Fosdal

    Strange debug output

    We used OutputDebugString for a while, but found that if you had a large number of logged outputs from multiple threads, it would occasionally drop the output. We ended up changing the way we logged by writing debug data in text format to a threadsafe ring buffer and have a background thread burst the logged data to a textfile periodically, and that would transition to a new file every midnight.
  6. Buffers that work with AssignFile/Readln/Writeln? That is the use I describe.
  7. I am open to suggestions for alternatives?
  8. So much fun with moving parts!
  9. Lars Fosdal

    Access TStringGrid InplaceEditor

    Doesn't the grid get OnKeyDown events once you are in the cell editor? https://docwiki.embarcadero.com/Libraries/Sydney/en/FMX.Controls.TControl.OnKeyDown
  10. When do you get the error? During connect, authentication or later?
  11. I use BlockRead/BlockWrite for a text file device driver that really speeds up writing and reading a text file, since it allows me to configure much larger buffers. https://pastebin.com/u/LarsFosdal/1/ns7ET60N
  12. Lars Fosdal

    Access TStringGrid InplaceEditor

    What about https://docwiki.embarcadero.com/Libraries/Sydney/en/FMX.Grid.TStringGrid.OnEditingDone ?
  13. Lars Fosdal

    Access TStringGrid InplaceEditor

    Argh, Mike - my bad. I was speaking from a VCL point of view - not noticing that you posted in the FMX section. Not the first time I've made that mistake.
  14. Threads are about parallel/background work, but after invoking a task, you could in theory use ITask.Wait to stop the main thread while waiting for it to complete - but then you might as well execute the code from the main thread instead of creating other threads. Also, if the thread gets stuck, your main thread would be stuck. It is better to use parallel threads and in the main thread receive signal events for when the background thread succeeds/completes/fails. Threads are not hard when you understand them and the best practices around the use of them - but gaining that knowledge can be a challenge. Read the theory, study the examples, and try it out.
  15. Lars Fosdal

    Access TStringGrid InplaceEditor

    One option is the OnSetEditText event. https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Grids.TCustomDrawGrid.OnSetEditText
  16. The JSON looks non-standard. JsonLint.com doesn't like it either. It doesn't know how to deal with ObjectId(); Can it be that it is BSON? Ref. https://stackoverflow.com/questions/16586180/typeerror-objectid-is-not-json-serializable
  17. I do a lot of string manipulation, but I have not seen this effect yet. Weird. I would definitively have assumed that the concatenation would go left to right on evaluation of the functions. Would this change the outcome? s := ''; s := s + ReadChar + ReadChar;
  18. Lars Fosdal

    Replacement for TBits?

    Intel's blurb: "Under the right circumstances, the technology lets CPU cores effectively do two things at once." - but it doesn't really outline the circumstances. https://en.wikipedia.org/wiki/Hyper-threading has some interesting observations, making me wonder if I actually would be better off by disabling Hyper-Threading...
  19. Searching the 11.x source: So - there is some compiler magic involved somewhere with the BlockWrite proc. In System.pas, below line 3000, you find the comment: { Procedures and functions that need compiler magic } and a long list of funcs and procs. _BlockWrite is in that section. Map file says 0001:0000BE10 System.@BlockWrite Is it a pointer to the procedure which is set up somewhere by the compiler/RTL?
  20. Lars Fosdal

    Can one run delphi (32 bit) apps on Windows 11 ARM?

    32-bit and 64-bit Windows Apps Runs fine in Windows for ARM under Parallells on my MacBook Pro M1 (macOS Ventura 13.4.x)
  21. Lars Fosdal

    Access violation in library code

    That FFFFFFF9 address looks like a nil reference negative offset. Does TBSDictionary.SetElements check the validity of the references?
  22. Lars Fosdal

    SBOM tool for Delphi

    I would have said that this is a manual task, as components or libaries might not be easily identifiable. In theory, you could write something that scanned the source files and picked out copyright messages, but the list would probably be ripe with duplicates, and have many missing entries. On the other hand - if the scanning could be done out-of-project and connect units to a vendor once and for all and allow for manual tidying, then it would basically be about scanning the map file post build, and create and link a resource text (or JSON or XML) with the SBOM info. Sounds like a development opportunity for a creative person with time to spare.
  23. @Bart Verbakel Is it a file used only by your application(s) - i.e. are you in control of production and consumption of the file? In that case, you have the alternative to modernize the file structure to f.x. JSON to support unicode and additional/optional fields. If you stay on your Record format, you need to do explicit conversions between your shortstrings and other strings in the system. MessageDlg( String( F1Pool.Deelnemer[High(F1Pool.Deelnemer)].Teamnaam ) + ' succesfully added!', mtInformation, [mbOk], 0); // Should silence the W1057
  24. @Bart Verbakel Does the output file have a specific format, or is it just a text file with multiple lines?
  25. Lars Fosdal

    Stringgrid cell color

    You could perhaps do a grdDetails.Canvas.FillRect(Rect) before calling TextRect?
×