Jump to content

Martin Sedgewick

Members
  • Content Count

    35
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Martin Sedgewick


  1. Agreed that they have done a good job. The cumulative effect of the last few releases being more focused on bug fixes, IDE improvements is now paying off. 

     

    F2084 Internal Error - I forgot about that one as I have not seen that in a while now! Thankfully 🙂

     

    I also like the more regular patching, and hope they continue to drop bundles of fixes more often. Keeps people happy when they see progress on the things that are blocking them.

     

    Would be great to see a roadmap too. No idea what is happening next!

    • Like 1

  2. LInvoice.DataFields.FieldByName('AUXIL_CODE').Value := 'AUTO';
    

    here you use underscore

    LInvoice.DataFields.FieldByName('ARP-CODE').Value := '320.01.002'; // Here Access Violation raises

    here you use a hyphen. Is it simply that the field doesnt exist. That would cause an access violation

     

     

    I would first focus on why LInvoice.DataFields.FieldByName('ARP-CODE') seems to be NIL

     

     

    On the 

     

    var
      LQuery: IQuery;
     begin
      LQuery := FMainConnection.NewQuery(); 
      // Here LQuery still remains as nil
     end;

    is IQuery the interface from the COM library? how is the COM interface look in the TLB.pas file? is it a function with no parameters?

     

    I would review all the basics and see there is nothing simple being missed. Is there anything else missing from setting up the FMainConnection that might have it returning a NIL interface? 


  3. @David Millington

    Is this plugin one that you personally still develop or has it been brought into Embarcadero development?

    Any update on the plugin. As you can tell it is much loved and we are all waiting for the latest version 😄

    EDIT: I can see David hasnt been on the forum for 2 months. so might be best to reach out elsewhere.

    • Like 1

  4. The TMS component to use would be the TAdvSpreadGrid if you were looking at TMS. 

     

    MAKE THE GRID FORMULA-AWARE WITH TADVSPREADGRID

    https://www.tmssoftware.com/site/gridpack.asp

     

    • Simple formula editing interface
    • Auto recalculation
    • Single cell recalculation, full recalculation
    • Extensive range of mathematical functions
    • Save with formulas
    • Single cell references in formulas
    • Cell range formulas
    • Formula precision for grid on cell basis
    • Display formulas or formula results
    • Date / time functions
    • Intelligent formula aware copy and paste
    • Can be extended with custom functions
    • Cell names
    • Cell name mode can be RxCy style or A1-style
    • Formula & constants libraries
    • Inter grid formulas

  5. I remember years ago watching a video of "Notch" using Java to create a game and he leaned heavily on hot reload.

     

    It was immediately obvious the benefits. The game was running. He modified some function or other and hit a key and the game updated with the change. The time saved over days, weeks and months would be incredible. Obviously it depends on the software. but if you have to compile, run, login, get to point X it all adds up.

     

    • Like 2

  6. https://github.com/ideasawakened/DelphiKB/wiki/D28.ALEXANDRIA.11.0.0.0

    This might help

    • Can no longer build executables for Windows XP without customization:
      • Project Options->Building->Delphi Compiler->Linking->Set OS Version fields in PE Headers (and Set SubSystem Version fields in PE Headers" to 5.1 (it now defaults to 6.0)
      • If you use System.Threading, then need to change GetTickCount64 references to a new routine matching something like the code below and then use a modified system.thread.dcu in your projects (or update \lib\win32\debug and \lib\win32\release with new versions of System.Threading.dcu)
      • More info from Michal Mutl on Delphi PRAXIS forum message
    function _GetTickCount64: UInt64;
    begin
    if TOSVersion.Major<6 then
      Result := TThread.GetTickCount
    else
      Result := TThread.GetTickCount64;
    end;
    
    • XP Compatibility notes

      • As reported by Marco Cantu on Delphi PRAXIS, better HighDPI support was the reason for the PE header change. And the GetTickCount was un intentional.
      • Changing the PE format to target newer versions was a design decision. It's the same Visual Studio does. And it does make a difference in the results when invoking some HighDPI related Windows APIs. They fail to return the right value if the app is for XP, so if you change the PE setting (doable) you'll have some trouble on the latest systems. The introduction of an XP breaking issue with GetTickCount64 was not intentional and discussed. We don't test on XP by design, no one in the beta did, most likley. While we don't officially support XP, such a simple change is doable -- as long there is zero impact on newer systems and it costs a limited time. I doubt we'll release a patch for it, though...
    • Like 3

  7. Result := Boolean(0);

    I found that code hard to read mostly due to code formatting and naming. But this stood out when I scanned down. Why would you do this? why would you do this in Delphi? 

     

    Result := false;

    Result := true;

     

    Surely this is more readable. Is there a performance thing going on underneath with a Boolean cast? 



    On error/exception handling, as said above, far too broad to answer - more details would be needed or an example to help with this.

×