Jump to content

Tom F

Members
  • Content Count

    233
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by Tom F

  1. Tom F

    Parnassus Bookmarks for Delphi 11 Alexandria?

    The entire product sometimes feels like that. <šŸ™> And the website's erratic availability definitely feels like that.
  2. In a plotting app, I have the following class of: x ,y points, a string label for each point, and an array of Booleans indicating whether the point should be plotted. All 4 arrays will be of the same length. TXYSeries = class(TObject) fXSeries: array of Single; fYSeries: array of Single;; fIgnorePointWhenPlotting: array of Boolean; fElementNames: array of String; end; I want to sort the arrays in this object so that the values in fXSeries are in order. Any suggestions on a clever way to do this sort using generics or other built-in sort methods? (i.e. I really don't want to use my own sort code.) The only approach I can come up with is to copy the above class into an array of point objects. Do a generic sort of the array. Then copy the array back into the structure in the above code sample. This seems pretty clumsy. But maybe the original data structure above doesn't lend itself to generics? Any suggestions. Below is my proposed solution: type TPoint = class(TObject) X: Single; Y: Single; Ignore: Boolean; ElementName: String; end; TPoints = Array of TPoint; var Points: TPoints; begin ... TXYObject into Points array... TArray.Sort<TPoint>( Points, ....) ... Copy Points array into TXYObject end;
  3. How do I configure LSP so that as I type the name of an in-scope variable, it suggests the full name automatically. Ctrl-Space works, but have I missed something with the configuration below? Delphi 11
  4. Tom F

    Codesite auto-invoke not working?

    Although it wasn't checked in the screen capture I included, I had previously tried checking that box and just retried it. It's still not working. Thanks for the suggestion though, Peter.
  5. Tom F

    Tries to convert from D7 to D10

    This might also be helpful: https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/
  6. Tom F

    Profiler for Delphi

    Yes, no that you mention it, their licensing scheme was terrible. In all fairness, it was perhaps tougher to do back then than now? And thanks for the confirmation about the history of the product.
  7. Tom F

    Profiler for Delphi

    Wow. I didn't know that. As I recall at the time, from my experience with the UI, functionality, documentation, and support, I concluded that SmartBear didn't have much commitment to Delphi. Perhaps I was wrong. Thanks for the info, @Anders Melander
  8. Tom F

    Profiler for Delphi

    For profilers, we use NexsDb's: https://www.nexusdb.com/support/index.php?q=node/27156. It's a wonderful product and has helped us a lot. We suggest you avoid SmartBear AQTime. It felt it was designed for C/C++ and that Delphi was added as an afterthought.
  9. To eliminate shipping and updating OpenSSL (ssleay32.dll and libeay32.dll) I plan to move from Indy to THTTPClient for file downloads. Should I be using TNetHttpClient rather then THTTPClient? I'm using HttpAsyncDownloadDemo.dpr as a starting place, although without the Async part. A majority of my users are on Window 10. But a very small number are on earlier versions, some even XP. To be honest, perhaps those users are already experiencing download problems with Indy. It hasn't been reported though. What kind of support I should expect from Windows for THTTPClient in earlier Windows versions?
  10. Is there ever a time to explicitly free a sub-form or does it parent form always do that? The expression: TForm2.Create(Self) establishes that the sub-form TForm2 is owned by the parent form TForm1. When TForm1 one is destroyed, the RTL will destroy TForm2? If so, fNonModalForm.Free should never be done? procedure TForm1.btnCloseAllClick(Sender: TObject); begin if Assigned(fNonModalForm) then begin if fNonModalForm.Visible then fNonModalForm.Close; FreeAndNil(fNonModalForm); // <--- Should I do this ever? end; Self.Close; end; procedure TForm1.btnOpenNonModalWindowClick(Sender: TObject); begin if NOT Assigned(fNonModalForm) then fNonModalForm := TForm2.Create(Self); fNonModalForm.Show; end;
  11. @Anders Melander Thank you for your helpful answer!
  12. @corneliusdavid Thanks for the response. I hope you are correct. I hope someone who knows the internals of the RTL will post her confirming that TForm.Create(nil) has no side effects other than relieving the parent form from the responsibility of freeing the form. Somehow I thought that Z-order (I'm using fsStayOnTop) depending on the sub-form knowing its parent. Tom
  13. @corneliusdavid: Is it safe to set a form's parent to nil, as in TForm.Create(nil)? Does a form inherit properties and behaviors from a parent that if we use nil are not inherited? @John Kouraklis: In some initial testing I was finding even if I explicitly did .Free and := nil (or used FreeAndNil) that the RTL still seemed to be trying to destroy the sub-form when it destroyed its parent form, the app's main form. I'm hoping that some RTL gurus will clarify all this for us.
  14. Tom F

    Bookmarks dead?

    Good point. Messes like this often have have the stink of a company that has decided to take larger profits rather than sufficiently funding their engineering staff. Whether that’s the case with Emb, I don’t know.
  15. Tom F

    FMX cross platform approach?

    Several years ago we migrated a 50,000-line Windows VCL app to FMX so we could distribute it on MacOS. The migration was pretty easy for us. Most of the differences were changing out VCL component and property names, which is a nuisance, but not difficult. IMO, though, it's not something you want to do later. I recommend people develop in FMX from the start. But, maybe that's not what you were asking? For target platform: Compiling, linking, and opening a debug session to the Mac is really slow for us. (Some of that is no doubt the 64-bit compiler/linker which is slow.). It takes so much time when targeting the Mac that we do all our development first on 32-bit Windows (same FMX code base) so that the iterative write-compile-debug process isn't painful and we can be more productive. During the development process, after we have some code running on 32-bit FMX Windows, we compile and run the app on the Mac to make sure it works there too. You'll get pretty good after a while of knowing what code of yours is OS dependent.
  16. Tom F

    Delphi 11, migrate or wait

    If you use the Bookmarks add-in in GetIt (formerly from Parnassus), note that it's not yet available.
  17. In Delphi 11 with all patches, when I debug any Delphi app in macOS (11.2.2) with Xcode version 12.5.1, I see this message in the IDE Message window Googling about a bit, it seems that this message is from the LLDB debugger. This line appears in quoted message logs in several RSPs, but the RSPs are on different topics and don't seem to discuss this message itself. The message seems benign, as far as I can tell. Does anyone know anything more about this message?
  18. Tom F

    Delphi 11 November Patch

    The patch was not suggested on the Welcome screen, nor was it promoted on the default GetIt Package Manager screen. I expected it to be. I found the patch under "Patches and Hotfixes" on the GetIt Package Manager screen. I installed it with no errors. However, I LOST ALL OF MY TOOLBAR CUSTOMIZATIONS. (Yes, I'm shouting.) Years ago I gave up using the Delhi Migration Tool because it also failed to preserve my toolbars. I concluded then that Emb is unable or unwilling to fix whatever problem exists with preserving IDE toolbars during installations. It appears that the same problem exists on this update, although it's possible of course that the loss I experienced was due to some other coincidental factor than installing the patch.
  19. Tom F

    Bookmarks dead?

    I don't know the organization very well, but I'd be very surprised if David Millington wasn't a beta tester.
  20. Tom F

    Parnassus Bookmarks for Delphi 11 Alexandria?

    Another vote here for David to get the time to update the plugin. I'm so accustomed to using his great Bookmark tool that it's really frustrating to have to wait. It would be nice if Emb actually staffed the RAD Studio team so that things like this (and so many others) didn't get delayed.
  21. Tom F

    GetIt Server down?

    Edit: GetIt is now working again. In Windows 10, I updated from Sydney to Delphi 11 using the ISO. However, in the IDE, trying to access Tools > GetIt Package Manager results in: The Embarcadero GetIt server could not be reached... Error loading data from the server getit-olympus.embarcadero.com: Forbidden The Welcome screen's "New in GetIt" panel also reports "Error loading data." The GetIt Package Manager runs fine on the same machine in 10.4.23. I ran: GetItCmd.exe -c=useonline as an administrator and got "The command finished with success." But the problem remains. There is a discussion here (https://en.delphipraxis.net/topic/3909-delphi-104-getit-connection-issue/ on a similar problem, but it's for 10.4 and is 11 months old, so I'm hesitant about making any of the changes mentioned there. Any suggestions on fixing this?
  22. I'm sure this has been discussed ad nauseum before, but I haven't been able to find with Google any info on this. I'm using VCL in Sydney with FireDac to SQLite. Is there a way to have a TDBGrid be updated live as I'm dragging the vertical scroll bar, rather than waiting until I release the mouse? I thought maybe Qry.FetchOptions.Mode := fmAll; would help. But it doesn't. I had hoped to find some useful info here, but didnt': https://docwiki.embarcadero.com/RADStudio/Sydney/en/Browsing_Tables_(FireDAC). Nor here: https://docwiki.embarcadero.com/Libraries/Sydney/en/FireDAC.Stan.Option.TFDFetchOptions.CursorKind. I could use a TStringGrid or other component here too, but StringGrids seem to have the same non-live update while vertical scrolling. I don't want to use a third-party component. Any suggestions? TIA
Ɨ