Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Shrinavat last won the day on January 16 2019

Shrinavat had the most liked content!

Community Reputation

8 Neutral

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Shrinavat

    Format uses clause

    Exactly right! I'm sorry, my bad.
  2. Shrinavat

    Format uses clause

    @Uwe Raabe What am I doing wrong? Why aren't the units grouped by group prefix?
  3. Shrinavat

    Delphi 10.4.2 custom templates

    Isn't that the reason you are here? https://quality.embarcadero.com/browse/RSP-28708
  4. Shrinavat

    How to gracefully get rid of the use of dictionaries?

    Thank you all, you put me on the right track!
  5. Shrinavat

    How to gracefully get rid of the use of dictionaries?

    You are correct. The code uses expressions like: cx := E or W; grid[ny, nx] := grid[ny, nx] or S;
  6. There is current code, in which I think the use of dictionaries is redundant: const N = $1; S = $2; E = $4; W = $8; var DX, DY, OPPOSITE: TDictionary<Integer, Integer>; // init dictionares DX := TDictionary<Integer, Integer>.Create; DX.Add(E, 1); DX.Add(W, -1); DX.Add(N, 0); DX.Add(S, 0); DY := TDictionary<Integer, Integer>.Create; DY.Add(E, 0); DY.Add(W, 0); DY.Add(N, -1); DY.Add(S, 1); OPPOSITE := TDictionary<Integer, Integer>.Create; OPPOSITE.Add(E, W); OPPOSITE.Add(W, E); OPPOSITE.Add(N, S); OPPOSITE.Add(S, N); // Usage of these dictionaries is shown below in the example code: var nx := x + DX[dir]; var ny := y + DY[dir]; grid[ny, nx] := grid[ny, nx] or OPPOSITE[dir]; To improve performance, I would like to avoid using dictionaries and use a simpler code instead... but I don't know which one? Any help in this arena would be greatly appreciated.
  7. Shrinavat

    Is this C++ builders new FORUM ???

    Alas, "Omnia orta cadunt"
  8. Shrinavat

    adding graphics32 component

    Maybe it makes sense to add graphics32 to "Delphi Third-Party" section?
  9. Shrinavat

    Looking for SVG support in Delphi?

    Looks great, is there any chance of animation support (like SVGMagic do)?
  10. Shrinavat

    Free SQLite -> Interbase tool?

    Maybe something like https://www.rebasedata.com/convert-interbase-to-sqlite-online ?
  11. Shrinavat

    Report components: good, bad, ugly

    OExport - XLSX/XLS/ODS/CSV native Delphi/Lazarus import/export library - https://www.kluug.at/kluug-net/xlsx-ods-delphi.php I use Template engine: automatically process user-defined XLSX/XLS templates.
  12. Shrinavat

    Saving a large project takes soooo Loooonnnnggg..

    The latest version is in the attachment. It supports the latest version of RAD Studio.
  13. @Schokohase Thank you, it's works! I wonder if there is another solution? Without creating an extra class?
  14. @Schokohase Sorry, I'm afraid I don't know what you're talking about. What method what class i shoud use? The pipeline does not have an Initialize method.
  15. I have a pipeline for downloading files to a specific database. FFileDownloader := Parallel.Pipeline .Stage(Asy_URLBuilder) .Stage(Asy_URLRetriever) .Stage(Asy_DBInserter, Parallel.TaskConfig.OnMessage(Self)) .Run; procedure Asy_URLBuilder(const input, output: IOmniBlockingCollection); var ovIN, ovOUT: TOmniValue; begin for ovIN in input do begin // ... compose url for downloading output.TryAdd(ovOUT); // url is in ovOUT end; end; procedure Asy_URLRetriever(const input, output: IOmniBlockingCollection); var ovIN, ovOUT: TOmniValue; begin for ovIN in input do begin // ... downloading output.TryAdd(ovOUT); // downloaded file is in ovOUT end; end; procedure Asy_DBInserter(const input, output: IOmniBlockingCollection; const task: IOmniTask); var ovIN: TOmniValue; DB: TxxxDatabase; begin DB := TxxxDatabase.Create(nil); DB.DatabaseName := ??? ; DB.Open; for ovIN in input do begin // ... insert downloaded file in specific database end; DB.Commit; task.Comm.Send(WM_TASK_COMPLETED); end; I run a pipeline for various databases. I need to pass DatabaseName to the third stage of the pipeline. How can I do that? Can I use the SetParameter method of Task controller when creating a pipeline? And if so, how? Any help will be appreciated!