Jump to content

Brian Evans

Members
  • Content Count

    349
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Brian Evans


  1. I am seeing those messages as well now. Hitting continue a couple times gets past a bunch of raised exception class Stop (17) messages and I then get the FMX GUI application form visible and break points work. 

     

    Here doing Setting Tools -> Options,  in the dialog: Debugger, Embarcadero Debuggers, Native OS Exceptions:  64-bit Linux Exceptions and Signals,  Stopped (signal) (SIGSTOP) ($11) to have on resume column to run handled.  The dialog never comes up at all and break points work. 

     

    The number of times I needed to press continue seems to correspond with the number of warnings I see for bad DW_FORM values from LLDB in the command window paserver is running in.. 

     


  2. Nothing shown references a component in another unit. I only see a local ProgressBar1 defined in the Var section of your procedure that isn't created / initialized so will throw access violations when an attempt it made to reference/access it. 

     

    Usually you would put the other form unit in the Uses clause of the implementation section of the form you want to reference it from. Then use the form variable to access it like Form1.ProgressBar1.Visible := true;.

     

    implementation
    
    
    {$R *.dfm}
    
    uses Unit1;

     

     

    • Like 1

  3. 6 hours ago, Nathan Wild said:

    Indeed..  I was delighted to find a post about this, but even with the PE version set to 5.0, I am still getting "Not a valid Win32 application" on Windows 2000.  Is there anything else that might cause this?

    No problems here on Windows 2000 Pro SP4 - a simple form with a close button compiled with Delphi 11.2 runs.

     

    Make sure both Set OS Version fields in PE Header as <major>.<minor> and Set Subsystem Version fields in PE Header as <major>.<minor> are set to 5.0. Those are the only two changes I made from a default project for Windows 32-bit. 

     


  4. Part of me is just grateful Delphi for Windows with the VCL is actively developed and they are still willing to attempt some larger updates like the LSP. I have a smaller code base so don't suffer from the current LSP problems as much as others. All the other improvements have me enjoying 11.2 more than any release in a long time. Myself I would prefer wide ranging consistent improvements and fixes over trying to introduce the "next big thing". I think an IDE can be a case where the whole is greater than just the sum of the parts due to how things are integrated. Felt that since Turbo Pascal 4.0 under MS-DOS - editor/compiler/debugger all in one with a good manual made it an amazing product. Delphi sometimes feels the same but it is a much larger product so easier to hit rough spots.

     

    A lot of other development environments and especially GUI libraries have been replaced, killed off or frozen in time over the decades. Delphi and the VCL is one of the few that has made numerous transitions over the same period and remained viable. Not cutting edge but not dead. 

    • Like 2

  5. Note that any query / Transact-SQL Code that tries to return two or more results sets will produce that error when MARS is off. Look for an IF or other structures in the SQL code that could end up running more than one SELECT statement for some code paths. Could be inside a stored procedure or in code you send to execute. Another place it can happens is not fully reading one result before going on to another. 


  6. It would not take much memory fragmentation for 60MB allocations to start to fail for 32bit / 2GB of address space. SQLite is an in process database so shares the same 2GB address space. Multiple copies of record/field data that would not be an issue from smaller amounts of data become an issue. 

     

    There are ways to stream blobs in Firedac to reduce memory usage. See: Support for Blob Streaming in FireDAC - RAD Studio (embarcadero.com)

     

     

     

     


  7. Was usually available in the registered users download area as mentioned here  https://support.embarcadero.com/article/44082  which links to Delphi Registered User Downloads (embarcadero.com). After logging in it times out a couple times but eventually comes up for me (probably slow queries to a back end database that time out but work once the data has been read from disk already on subsequent attempts). 

     


  8. It works here without issue after fixing up the python library symbolic link in the PAServer-22.0 directory. Can debug including setting break points and stepping through a command line program targeted to a Ubuntu 22.10 Server.  Below are the commands I used to test on a fresh + updated Ubuntu 22.10 server install:
     

    # Ubuntu : run commands from home directory to get required pre-requisites and PAServer archive and unpack
    # do other apt update/upgrade etc before this
    sudo apt install joe wget p7zip-full curl openssh-server build-essential zlib1g-dev libcurl4-gnutls-dev libncurses5 lldb
    wget https://altd.embarcadero.com/releases/studio/22.0/112/LinuxPAServer22.0.tar.gz
    tar -xvf LinuxPAServer22.0.tar.gz
    
    cd PAServer-22.0/lldb/lib
    # rename current symbolic link so we can add the correct one
    mv libpython3.so libpython3.so_
    # this depends on the current Linux distribution for where and what it is called - this one is for Ubuntu 22.10 Server:
    ln -s  /usr/lib/x86_64-linux-gnu/libpython3.10.so.1.0 libpython3.so
    

    Do see a quality central bug report for the error you are seeing however: [RSP-39793] Linux - unsupported DW_FORM value: 0x1f - Embarcadero Technologies

     

     


  9. If the code still makes sense to you years latter and you can follow it without difficulty then there should be no complaints.   

     

    Applying a rule or guideline too rigidly before the skill or knowledge to do so has been acquired often makes things worse. In your example learning how to use continue; or break; to control the flow of a for loop would be best but applying a no goto rule and using multiple cascading IF's around a large blocks of code could be worse than just using a goto

     

    The top hall of shame code I have ever seen was due to developers rigidly applying rules before the skill and knowledge to do so was acquired. It made the code more complex and a lot harder to follow to the point is was often easier to just re-write it from scratch. 

    • Like 4

  10. Examining the PDFs I see they store the image using different filters: DCTDecode (fastreport) vs FlateDecode (SynPdf). The first is basically JPEG (larger and often has color shifts in parts)  while the second is like ZIP (smaller since the sample is a very uniform image). 

     

    Are you comparing colors between PDFs or with the source image?

×