Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 05/08/23 in all areas

  1. Lajos Juhász

    About Delphi 11.3 CE Platform Selection

    That's false. Every OS is a moving target. You cannot buy a finished solution and freeze it. You have to actively develop it. For years we see that Embarcadero doesn't have the required resources.
  2. Fellow Delphi developers, This is with great pleasure that we announce the immediate availability of HelpNDoc 8.6, an easy to use yet powerful help authoring tool producing CHM help files, responsive HTML 5 and mobile Websites, DocX and PDF manuals, Markdown documents, ePub and Kindle eBooks as well as Qt Help files from a single source. HelpNDoc is Free for personal use and evaluation purposes and is available at: https://www.helpndoc.com HelpNDoc 8.6 provides many new features and enhancements such as a new powerful non-destructive multi-layered image editor and much more... You can learn more about this update at: https://www.helpndoc.com/news-and-articles/2023-04-18-helpndoc-8.6-introduces-a-powerful-non-destructive-multi-layered-image-editor-to-enhance-your-documentation-workflow/ Video of some of the new features in HelpNDoc 8.6: Download HelpNDoc now and use it for free for personal and evaluation purposes: https://www.helpndoc.com/download Follow our step-by-step video guides to learn how to use HelpNDoc: Best regards, John, HelpNDoc team. https://www.helpndoc.com
  3. programmerdelphi2k

    Sorting two lists in step?

    would be that? "ITEMS" is a TStrings/TStringList - then ... implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin LMyItemsString := ['Item01', 'Item02', 'Item03', 'Item04', 'Item05', 'Item06', 'Item07', 'Item08', 'Item09', 'Item10']; // ListBox1.Items.AddStrings(LMyItemsString); ListBox2.Items.AddStrings(LMyItemsString); end; function MyAlreadyUsed(Arr: TArray<integer>; Value: integer): boolean; begin result := false; // for var V in Arr do if (V = Value) then exit(true); end; procedure MyNewOrderList(ASrcArray: TArray<string>; var ATrgArray: TArray<string>); var LPositionAlreadyUsed: TArray<integer>; LTotalItems : integer; LRandomPosition : integer; begin randomize; // LTotalItems := length(ASrcArray); // for var i: integer := 0 to (LTotalItems - 1) do begin LRandomPosition := random(LTotalItems); // if (length(LPositionAlreadyUsed) > 1) then while MyAlreadyUsed(LPositionAlreadyUsed, LRandomPosition) do begin LRandomPosition := random(LTotalItems); end; // LPositionAlreadyUsed := LPositionAlreadyUsed + [LRandomPosition]; // new order... ATrgArray := ATrgArray + [ASrcArray[LRandomPosition]]; end; end; procedure TForm1.Btn_DeOrder_itClick(Sender: TObject); var LMyItemsStringOutOfOrder: TArray<string>; begin ListBox2.Sorted := false; // MyNewOrderList(LMyItemsString, LMyItemsStringOutOfOrder); // ListBox2.Items.Clear; ListBox2.Items.AddStrings(LMyItemsStringOutOfOrder); // ListBox1.SetFocus; end; procedure TForm1.Btn_Order_itClick(Sender: TObject); begin ListBox2.Sorted := true; ListBox1.SetFocus; end; procedure TForm1.ListBox1Click(Sender: TObject); var i: integer; begin i := ListBox1.ItemIndex; if (i > -1) then begin if ListBox1.Items[i] = ListBox2.Items[i] then ListBox2.ItemIndex := i else ListBox2.ItemIndex := -1; // de-Select end; end; end.
  4. Perhaps these notes from Dave were useful here as well: https://en.delphipraxis.net/topic/8065-how-can-i-handle-the-javascript-result/?tab=comments#comment-68093
  5. VCL apps already do this
  6. You aren't using Delphi XE. You are using 10.2. You can find your version stated in the about window in the IDE.
  7. You can use the post-build event in the project options to run a program after the project has been build, perhaps that satisfies your requirement.
  8. Dalija Prasnikar

    TParallel Version and TTask Version

    Those two methods you have don't do the same thing. If you take a look to the result of the calculation, you will see that results are different. First method will increment sum 1000000 times and second will increment temporary value 1000000 times and then add that temporary result to the total sum 1000 times. So the second method runs more operations and that is why it runs slower. If you correct the code to calculate exactly the same sum in the second method, you will see that this one will run faster. for ThreadedI := 0 to Pred(1000) do begin Inc(ISum); end; Number of tasks running in both cases will be the same, but the second method has the advantage because the temporary calculation is not using interlocked operation which is costly, and only uses it to add that temporary sum to the final result. Overall, Parallel.For code will run interlocked operation 1000000 times, and task based method only 1000 times.
  9. i read that the new library come with some few new properties change i'm looking to it. Google Play Billing Library 4 to 5 Migration Guide | Google Play's billing system | Android Developers
  10. Dave Nottage

    D11,unsupported version of Play billing

    Can you test it, and report what problems you have with it, if any?
  11. programmerdelphi2k

    About Delphi 11.3 CE Platform Selection

    as said Melander: ... Im a HobbyIST .... and I want Linux (free and open-source) in a IDE (no commercial usage and < $5000/year) = Community Edition! 😁
  12. David Champion

    About Delphi 11.3 CE Platform Selection

    I don't think Embarcadero has thought this through. Linux clearly needs to be available in all SKU especially in the Community Edition which would be taken up by the casual or hobbyist developer.
  13. You might like the Grijjy implementation of Google Protocol Buffers: https://blog.grijjy.com/2017/04/25/binary-serialization-with-google-protocol-buffers/
×