Jump to content

Cristian Peța

Members
  • Content Count

    438
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by Cristian Peța


  1. 20 hours ago, Celso Henrique said:

    Now, when I call the Use Unit form by keyboard shortcut, the focus is not set on the name field, so I have to use mouse to click there. 

    This doesn't affect my workflow so I will not report this issue in quality portal.
    You can either report it or you will have to live with it.


  2. On 12/31/2021 at 5:44 PM, Tom F said:

    Should I be using TNetHttpClient rather then THTTPClient?

    TNetHttpClient is a component that uses THttpClient internally. If you don't need what TNetHttpClient offers then use directly THttpClient.

      TNetHTTPClient = class(TComponent)
      private
        FHttpClient: THTTPClient;

     

    • Like 1

  3. "On 64-bit versions of Windows, you have two separate Program Files folders. But it doesn’t end there. You also have two separate system directories where DLL libraries and executables are stored: System32 and SysWOW64. Despite the names, System32 is full of 64-bit files and SysWOW64 is full of 32-bit files. "

    https://www.howtogeek.com/326509/whats-the-difference-between-the-system32-and-syswow64-folders-in-windows/


  4. Solved.

    The issue was caused by Sentinel envelope that is applied to the executable. The envelope decrypts and decompress the EXE in memory and is doing a lot of other stuff. The envelope permitted to start the executable but because some incomplete installed drivers I suppose it does not do all the job to restore all what is needed to run properly.


  5. Delphi 10.4.2

    I try to understand this exception. I occurs at the app start and this is the only message, then the app closes.

    It happens only on one machine and the same code but truncated by some IFDEFs (a reduced version of the main app) is working.

    I suppose that class destructor TDBNavigator.Destroy is called when class constructor TDBNavigator.Create is still looping with FButtonsImageCollection.Add()

    But what means this address 400000?

    exception class    : EAccessViolation
    exception message  : Access violation at address 76B6C9ED in module 'combase.dll'. Write of address 00400000.
    
    thread $4b7c:
    76b6c9ed +db combase.dll
    00e3c89a +22 WinArhi.exe  Vcl.ImageCollection   282  +2 TImageCollectionSourceItem.Create
    0054c757 +0b WinArhi.exe  System.Classes       6213  +1 TCollection.Add
    00e3c965 +05 WinArhi.exe  Vcl.ImageCollection   325  +1 TImageCollectionItemSources.Add
    00e3d48b +53 WinArhi.exe  Vcl.ImageCollection   651  +9 TImageCollection.CreateSourceItem
    00e3d576 +2a WinArhi.exe  Vcl.ImageCollection   670  +1 TImageCollection.Add
    00e3d65a +76 WinArhi.exe  Vcl.ImageCollection   683  +2 TImageCollection.Add
    00e4f11d +7d WinArhi.exe  Vcl.DBCtrls          4188  +3 InitButtonsImageCollection
    026cb28d +09 WinArhi.exe  Vcl.DBCtrls          4192  +1 TDBNavigator.Create@
    0040b186 +42 WinArhi.exe  System              23832 +21 InitUnits
    0040b1ef +3f WinArhi.exe  System              23907 +14 @StartExe
    004140fa +42 WinArhi.exe  SysInit              1535 +11 @InitExe
    026f025f +0b WinArhi.exe  WinArhi               277  +0 initialization
    75f7fa27 +17 KERNEL32.DLL                               BaseThreadInitThunk

     


  6. I prefer that changing the SQL to simply close the dataset. Then possibly I want to set some parameters. I will open it again when all is ready.

    But sincerely I always call Close before changing SQL.

    If this is a documented behavior then it's OK but otherwise this can change anytime.

     

    I voted for the last. It's closer to what I prefer.


  7. Set an event handler:

      if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, IInterface(AppEventService)) then
        AppeventService.SetApplicationEventHandler(My_ApplicationEventHandler);

    And in that event you will receive the warning:

    function TFormMain.My_ApplicationEventHandler(AAppEvent: TApplicationEvent; AContext: TObject): Boolean;
    begin
      case AAppEvent of
        TApplicationEvent.LowMemory: ;
      end;
    end;

     

    • Like 2

  8. I start a new VM for every major app version and I want old versions to be stable. In this case I prefer to keep the sources in VMs.

    I don't write 3rd party components and I need only one Delphi version per my app version. It is easier so.

    When I start a new version I do a copy of the VM and all is there.


  9. This "image/text/plain" is strange for me.

    You can try this. This will enable share for image and text. If you need only text delete the "image/* "

    22 hours ago, Magno said:

    Intent.setType(StringToJString('image/* text/plain'));

    This setType() will filter the applications that supports that type.


  10. Then not the memory limit is the problem.

    I think I had something similar but long time ago I starter to avoid compile and use build almost every time. It is better to wait 10-15 seconds (in my case) than to fight with these issues.

     

    If I remember well this started for me about ten years ago when iOS was first introduced as a new platform.


  11. To send text you could use this function.

    If the previous change fixed the issue I suppose this will also fix it without to change anything else. You could also store binary data in AnsiString but I would not do this. It's better to use TBytes for this.

     

    procedure TThermalPrinter.SendString(AValue: AnsiString);
    var
      SND: TBytes;
    begin
      SetLength(SND, Length(AValue));
      CopyMemory(@SND[0], @AValue[1], Length(AValue));
      LSockect.SendData(SND); // send data to the printer
    end;

    And better this in TThermalPrinter.DoPrintBitmap()

      vTempStr : AnsiString;
    • Thanks 1
×