Jump to content

Tom F

Members
  • Content Count

    211
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by Tom F


  1. 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;

     

     


  2. 3 hours ago, Anders Melander said:

    I'm pretty sure it was the other way round. AFAIK it's still written in 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


  3. 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?






     


  4. @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.


  5. 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;

     


  6. 5 minutes ago, dummzeuch said:

    A mess like this is the reason why I am usually not thrilled when Embarcadero buys some tool or some components/library and takes over maintenance.

    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.  

    • Like 2

  7. 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. 


  8. 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

     

    Quote

    target.max-children-count (int) = 256 

     

    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?

     


  9. 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.

    • Like 1

  10. On 11/23/2021 at 8:42 AM, Stefan Glienke said:

    Someone should have invited David Millington or the dev at Embarcadero that is now responsible for those plugins to the Delphi 11 beta so they could have worked on those plugins at the time when many other IDE plugin devs did. /s

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


  11. Do you think we should we just give up on ever getting an updated Bookmarks plugin (formerly from Parnassus) that works in Alexandria?

     

    It's now two months late.

    It's very clever of Embarcadero to keep these kinds of major features as optional plugins rather than integrated into the IDE. Because Embarcadero can claim they released a major update, even if some major features (like Bookmarks) aren't available.  :classic_sad:  I wouldn't treat my customers that way.

     

    I'll omit a long rant about Embarcadero, since that's been discussed here before.

    I just want my Bookmarks.  And I'm tired of checking the GetIt Package Manager for it.  I'm disappointed. And I'm concerned that these kinds of failures may reveal that Embarcadero's development processes are underfunded and broken. 

    • Like 6

  12. On 9/21/2021 at 6:16 AM, Martin Sedgewick said:

    It is David Millington that wrote this, and I think I am right in saying they usually get updated a few weeks after each release. He will have been focused on the D11 launch until now.

    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. 

     

    • Like 5
×