Jump to content

Jud

Members
  • Content Count

    118
  • Joined

  • Last visited

Everything posted by Jud

  1. It used to be that if I started a second instance of the Delphi IDE, it would warn me and ask if I wanted to start another instance. Now it doesn't ask - I sometimes have 2, 3, or 4 instances running inadvertently, which I want to avoid. I got a new computer with Windows 11 instead of 10, and I've upgraded Delphi. Is there a setting in Delphi that warns you about starting a second instance? Is it a Windows setting? (I know how to keep a second instance of my program from running.)
  2. OK, that IS what I used to use. It gives the warning, and then you seem to have no choice but to open the second instance, but then you know, and can close the new one. Thanks!
  3. I was going to the old website and I didn't notice that it is now done by someone else with a different website. I just downloaded it - thanks for telling me that. * I have it installed, but I can't find an option to prevent a second instance of the IDE from starting. Where is that option?
  4. I used GExperts for years, but it doesn't work with Delphi 12, That was probably what I was using.
  5. I'm having a strange problem in the Delphi 12 IDE on a Windows 11 desktop. First I downloaded the trial version of Enterprise and entered my license number. (My license is for the professional edition.) There were strange problems in the IDE. When searching, if I searched for "xyz[" or "xyz(", it would give an error message about mismatched [ or (, and not search. If I search for ".xyz", it ignores the period. There are other things, like much of refactor is disabled. Sometimes "find declaration" doesn't work. I uninstalled Delphi 12 and reinstalled it from the iso file. I had the same problems. Then about 3 weeks ago I installed it on my Windows 11 laptop to take on a trip. It DOES NOT have the problems! What could cause this and how can it be fixed?
  6. That was the problem! It must have gotten checked by accident.
  7. Just got back - that might have goofed something up.
  8. I'm a long-time registered user of Delphi. I want to download Delphi Community Edition to my laptop to take on a trip. When I download the community edition, it gives me three options: sign up for trial version, enter a registration key, or upload a registration file. I just want to use the free community edition, but that isn't an option. When I enter my registration code for 11.3, it says that it is registered to a different user, so I can't register it. Is there a way for me to just get the community edition for my laptop?
  9. Jud

    Help with Delphi Community Edition

    That seems to be the case, based on my experience. I don't want to go through the hassle of activating it on my laptop, so I'm planning to use my wife's email to get the CE on my laptop.
  10. I've had a perplexing problem for about 2 days. Basically if a tTask is inside a loop, the loop isn't executed. I extracted a section of code from my program, and the short sample code below has the problem. After the SetLength line is executed, it goes to the END of the procedure. This used to work. If I take the line TaskArray[ counter] := - the loop is executed. If I take out the loop and replace it by counter := 0, it works. Am I missing something? What is going wrong? procedure TForm2.RunButtonClick(Sender: TObject); const NumberOfParts = 1; var counter : integer; TaskArray : array of iTask; begin { --- run button --- } SetLength( TaskArray, NumberOfParts); for counter := 0 to NumberOfParts - 1 do begin try TaskArray[ counter] := tTask.run( procedure begin RunWork( counter); end); except on E:EAggregateException do ShowMessage( E.ToString); end; // try end; // for counter end; { --- run button --- }
  11. I need to write to a memo on the main form from within a thread. In an old program using tasks I was doing this: tThread.synchronize( tThread.current, procedure begin form1.TestMemo.lines.add( 'Testing '); application.ProcessMessages; end); and it was working. I put the same type of thing in a tread called by the parallel for, but it isn't writing to the memo. Is there a different way to do it from a thread called from a parallel for?
  12. TBits is still limited to 2^31 bits, even on the 64-bit platform. Is there a replacement for it that will allow > 2^32 bits (i.e. int64?) (I could write one, but a lot of people are more efficient with this kind of thing than I,)
  13. This is the first time I'm using BlockRead and BlockWrite in Delphi 11,3. I've used them in previous versions. I thought they were functions, returning an integer. The help file says so and the source code says so. But I'm getting an E2010 error when trying to assign the result to an integer, e.g. RecordsWritten := BlockWrite( OutFile, ... Just calling it like a procedure works. I'm attaching a screenshot of the error message. Is this a bug or am I wrong?
  14. I've abandoned the old BlockRead/Write for tStream.
  15. This goes back a few years, but when I got my four-core hyperthreaded i7, hyperthreading could get 1.5-1.6 more performance than a single core, in my tests on CPU-intensive tasks. Less than that on memory-intensive tasks.
  16. You may not have installed the help file and the source code for the units.
  17. That is what Delphi Basics says, and it appears to be right. OTOH, if in the Delphi IDE you do F1 for help on BlockWrite (or BlockRead), it says that it is an integer function, and the source code for the system unit shows it as an integer function.
  18. Actually I did benchmarking. The first version of this program read a 30GB boolean array from a drive and used that. Naturally I did a single-thread before multithreading. I forgot the ratio, but 20 threads on a 12th generation i7 was something like 8-9x faster than the single-thread version. Now I'm working on replacing the 30GB boolean array with a much larger bit vector.
  19. No benchmarking with the bit vector yet, but I've definitely encountered the memory bottleneck. In old tests with 8 threads (hyperthreaded 4-core i7), I would get about 5.5x over a single thread on CPU-intensive tasks. But on tests that were memory-intensive, I would get around 3x on 16 threads.
  20. That looks like what I'm looking for!!! I'm going to try it shortly. Thanks!
  21. If I do "Find Declaration" on BlockWrite, it goes to an integer function: function _BlockWrite(var F: TFileRec; Buffer: Pointer; RecCnt: Integer; RecsWritten: PInteger): Integer;
  22. I doubt that it would be workable, since they are natually one dimentional, and the program just needs to see if a bit is 1 or 0, and it needs to do a large number of them.
×