Jump to content

jesu

Members
  • Content Count

    40
  • Joined

  • Last visited

Posts posted by jesu


  1. Yes, Windows 11 Notepad screws files. This never happened in Windows 10 after many years using it. You open a file double-clicking it, edit it and just click save expecting that it respects your encoding. Sometimes it does, sometimes not. Sure, you can use Save as to be sure that it uses the encoding you want, but that was never neccessary before.

    Just to be clear, I'm not talking about Delphi files. 

     

    The fact is that we need to restore these files without loosing time doing it by hand. I've used the table in this page to type the characters in my procedure:

    https://www.utf8-chartable.de/

    where I see that 

    Quote

    c3 8d    LATIN CAPITAL LETTER I WITH ACUTE

     

    Should I encode ka_AcentosMal in some other way?


  2. Hello. Since I upgraded to WIndows 11 I've had some text files screwed. Unfortunately, we still need to use ANSI in some files but sometimes (likely by notepad) that is replaced with UTF8. I've created a procedure like this to restore them (I don't know it these codes will be messed in the forum):


     

    procedure TFprincipal.ArreglarAcentos;  
    const
      ka_AcentosBien : array[1..14] of string =                                    
        ( 'á', 'é', 'í', 'ó', 'ú', 'Á', 'É', 'Ó', 'Ú', 'ñ', 'Ñ', 'ü', 'Ü', 'Í'
        );
      ka_AcentosMal : array[1..14] of string =                                   
        ( 'á', 'é', 'í', 'ó', 'ú', '�', 'É', 'Ó', 'Ú', 'ñ', 'Ñ', 'ü', 'Ü', 'Ì'
        );
    
    var
      i: integer;
      vb_encontrado: boolean;
      
    begin
      vb_encontrado := false;
      for i := Low(ka_AcentosMal) to High(ka_AcentosMal) do
      begin
        if (pos(ka_AcentosMal[i], mystring) > 0) then
        begin
    //      ProcDebug('encontrado:  ' + ka_AcentosMal[i] + ' reemplazo: ' + ka_AcentosBien[i]);
          vb_encontrado := true;
          mystring := StringReplace(mystring, ka_AcentosMal[i], ka_AcentosBien[i], [rfReplaceAll]);
        end
        else
        begin
    //      ProcDebug('no encontrado:  ' + ka_AcentosMal[i]);
        end;
      end;
    end;

     

    This procedure seems to work well except for i uppercase accented, which in utf8 is c3 + 8d. It seems that Delphi does something special with character 8d and my search doesn't work. How should I do it? 

    Thanks.

     


  3. Thanks for all the suggestions. I have the feeling that VCL should somehow protect events that can recreate controls. Something like 

     

    if Creating then ForceQueue incompatible operations

     


  4. On 5/26/2025 at 7:37 PM, Remy Lebeau said:

    Why not use Screen.Fonts instead? 

    I don't know. I've used that piece of code for more than 20 years. Maybe Screen.Fonts didn't exist or it didn't return the same.

    Ok, I've reduced the program so anyone can test it. Just press F9, change Tamaño to 16 and you should see the error.

    Trying to reproduce the error outside of the IDE seems much harder.

    BugEditor.zip

    error.png


  5. I use this procedure to get installed fonts and allow to choose one:


     

    procedure TFprincipal.GetFontNames;
    var
      DC: HDC;
    begin
      DC := GetDC(0);
      EnumFonts(DC, nil, @EnumFontsProc, Pointer(FontNameR.Items));
      ReleaseDC(0, DC);
      FontNameR.Sorted := True;
    end;

    but the problem seems to happen not when I change font name, but when I increase font size, and it doesn't happen always. If I choose a second time the same font size, the second time it seems to work.

     


  6. Hello. Using 12.3 + patch 1. I'm seeing this error: 

    Quote

    Access violation at address 6F75232A in module 'COMCTL32.dll' (offset 2232A). Read of address 0000000C.

    changing font at runtime. This is my code:

     

    procedure TFprincipal.FontNameRClick(Sender: TObject);
    begin
      ga_TipoLetra := FontNameR.Text;
      Font.Name := ga_TipoLetra;
      gn_FontSize := StrToInt(ComboSize.Text);
      Font.Size := gn_FontSize;
      Screen.MessageFont := Self.Font;
      ToolBar.Font.Size := Min(gn_FontSize, 14);
    end;
    

    The error happens at the end of that code in procedure TWinControl.DefaultHandler(var Message); inside VCL.Controls.
    Is it a bug or should I do something different?

    Thanks


  7. Hello. I have an application in which I show some webpages and pdfs, so I'm using tedgebrowser. I have copied WebView2Loader.dll. In the same computer, some days it works, other days it doesn't work.

     

    I have a declaration:
     

        WebBrowser: TEdgeBrowser;

    First of all I do is to initialize it:

        WebBrowser.CreateWebView;

    and I have a procedure to know when it fails:

    procedure TFPrincipal.WebBrowserCreateWebViewCompleted(Sender: TCustomEdgeBrowser; AResult: HRESULT);
    begin
      // el problema de esto es que se llama de forma asíncrona y tarda un buen rato
      if Succeeded(AResult) then
      begin
    //  ProcDebug('finalizó creación edge');
        if WebBrowser.ControllerInterface <> nil then
          WebBrowser.ControllerInterface.Set_IsVisible(Integer(LongBool(True)));
      end
      else
      begin
        ShowMessage('>> Fallo en creación navegador  hresult: ' + IntToStr(Aresult));
      end;
    end;
    

    when it fails it returns hresult: -2147023496. I've tried to find the meaning and I arrived here:

     

    https://learn.microsoft.com/en-us/microsoft-edge/webview2/reference/winrt/microsoft_web_webview2_core/corewebview2weberrorstatus?view=webview2-winrt-1.0.2903.40

     

    but I can't identify the issue. How can I know where's the problem?

    Thanks.

     


  8. One of the first things I did with the vm is uninstall Onedrive and alike. Usually I don't browse inside the vm, but I'll need to download and install some programs, and some of our applications include internet connections to third parties. I've always used vms for Delphi without these problems, but this is the first time I use version 12.3 and also the first time I use Windows 11 (I can´t delay using this crap any longer) and VirtualBox 7, so I'd like to know which of them triggered this issue. I suppose I'm not the only one with this configuration.

    If I exclude e:\Embarcadero and C:\Users\usuario\Documents\Embarcadero\Studio\23.0\CatalogRepository (I don't understand why the installer used that folder ignoring the one I chose during installation) would that be enough or I'll have to exclude also any components I use like e:\Raize,.... ?

    • Like 1

  9. What I pasted is a very minimal part of the log. So you don´t think those buffer overflows are a Delphi problem? 

    Ok, I disabled everything in Defender and, after reinitiating the vm, this time it started fast. What should I do? Run always without Defender?

     


  10. Hello. I've created a VM with VirtualBox 7.1.6 and Delphi 12.3. Once the IDE is ready it works acceptably, but the IDE starts extremely slow (it can need several minutes to start using only 1% CPU). I've installed Process Monitor but I'm not sure what to look for and I don't see nothing strange. This is a small part of the log:


     

    Quote

     

    9:28:13,4223485    svchost.exe    1108    CloseFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    
    9:28:13,4227618    bds.exe    5812    FileSystemControl    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    INVALID DEVICE REQUEST    Control: 0x90390 (Device:0x9 Function:228 Method: 0)
    9:28:13,4227784    bds.exe    5812    QueryAttributeInformationVolume    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    FileSystemAttributes: Case Preserved, Case Sensitive, Unicode, ACLs, Compression, Named Streams, EFS, Object IDs, Reparse Points, Sparse Files, Quotas, Transactions, 0x3c02e00, MaximumComponentNameLength: 255, FileSystemName: NTFS
    9:28:13,4227891    bds.exe    5812    QueryBasicInformationFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    CreationTime: 03/04/2025 8:09:21, LastAccessTime: 22/04/2025 9:28:13, LastWriteTime: 26/02/2025 21:03:46, ChangeTime: 22/04/2025 8:18:52, FileAttributes: A
    9:28:13,4227999    bds.exe    5812    FileSystemControl    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Control: FSCTL_WRITE_USN_CLOSE_RECORD
    9:28:13,4228386    bds.exe    5812    FileSystemControl    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Control: FSCTL_QUERY_USN_JOURNAL
    9:28:13,4228468    bds.exe    5812    SetEAFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    
    9:28:13,4229856    bds.exe    5812    CreateFileMapping    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    SyncType: SyncTypeOther
    9:28:13,4230090    bds.exe    5812    RegOpenKey    HKLM\System\CurrentControlSet\Control\Srp\GP\    REPARSE    Desired Access: Read
    9:28:13,4230219    bds.exe    5812    RegOpenKey    HKLM\System\CurrentControlSet\Control\Srp\GP    SUCCESS    Desired Access: Read
    9:28:13,4230354    bds.exe    5812    RegSetInfoKey    HKLM\System\CurrentControlSet\Control\Srp\Gp    SUCCESS    KeySetInformationClass: KeySetHandleTagsInformation, Length: 0
    9:28:13,4230417    bds.exe    5812    RegQueryValue    HKLM\System\CurrentControlSet\Control\Srp\Gp\RuleCount    SUCCESS    Type: REG_DWORD, Length: 4, Data: 2
    9:28:13,4230516    bds.exe    5812    RegCloseKey    HKLM\System\CurrentControlSet\Control\Srp\Gp    SUCCESS    
    9:28:13,4231045    bds.exe    5812    QuerySecurityFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Information: Owner, Group, DACL, SACL, Label, Attribute, Process Trust Label, 0x100
    9:28:13,4231212    bds.exe    5812    RegOpenKey    HKLM\System\CurrentControlSet\Control\AppID\Configuration\SMARTLOCKER    REPARSE    Desired Access: Read
    9:28:13,4231294    bds.exe    5812    RegOpenKey    HKLM\System\CurrentControlSet\Control\AppID\Configuration\SMARTLOCKER    SUCCESS    Desired Access: Read
    9:28:13,4231391    bds.exe    5812    RegQueryValue    HKLM\System\CurrentControlSet\Control\AppID\Configuration\SMARTLOCKER\DISABLED    NAME NOT FOUND    Length: 48
    9:28:13,4231469    bds.exe    5812    RegCloseKey    HKLM\System\CurrentControlSet\Control\AppID\Configuration\SMARTLOCKER    SUCCESS    
    9:28:13,4231536    bds.exe    5812    RegOpenKey    HKLM\System\CurrentControlSet\Control\AppID\Configuration\SMARTLOCKER    REPARSE    Desired Access: Read
    9:28:13,4231605    bds.exe    5812    RegOpenKey    HKLM\System\CurrentControlSet\Control\AppID\Configuration\SMARTLOCKER    SUCCESS    Desired Access: Read
    9:28:13,4231668    bds.exe    5812    RegQueryValue    HKLM\System\CurrentControlSet\Control\AppID\Configuration\SMARTLOCKER\ENABLED    SUCCESS    Type: REG_QWORD, Length: 8, Data:
    9:28:13,4231737    bds.exe    5812    RegCloseKey    HKLM\System\CurrentControlSet\Control\AppID\Configuration\SMARTLOCKER    SUCCESS    
    9:28:13,4231798    bds.exe    5812    RegOpenKey    HKLM\System\CurrentControlSet\Control\AppID\Configuration\SMARTLOCKER    REPARSE    Desired Access: Read
    9:28:13,4231862    bds.exe    5812    RegOpenKey    HKLM\System\CurrentControlSet\Control\AppID\Configuration\SMARTLOCKER    SUCCESS    Desired Access: Read
    9:28:13,4231922    bds.exe    5812    RegQueryValue    HKLM\System\CurrentControlSet\Control\AppID\Configuration\SMARTLOCKER\ENABLED    SUCCESS    Type: REG_QWORD, Length: 8, Data:
    9:28:13,4231984    bds.exe    5812    RegCloseKey    HKLM\System\CurrentControlSet\Control\AppID\Configuration\SMARTLOCKER    SUCCESS    
    9:28:13,4232042    bds.exe    5812    RegOpenKey    HKLM\System\CurrentControlSet\Control\AppID\Configuration\SMARTLOCKER    REPARSE    Desired Access: Read
    9:28:13,4232105    bds.exe    5812    RegOpenKey    HKLM\System\CurrentControlSet\Control\AppID\Configuration\SMARTLOCKER    SUCCESS    Desired Access: Read
    9:28:13,4232167    bds.exe    5812    RegQueryValue    HKLM\System\CurrentControlSet\Control\AppID\Configuration\SMARTLOCKER\DISABLED    NAME NOT FOUND    Length: 48
    9:28:13,4232225    bds.exe    5812    RegCloseKey    HKLM\System\CurrentControlSet\Control\AppID\Configuration\SMARTLOCKER    SUCCESS    
    9:28:13,4232655    bds.exe    5812    CreateFile    E:    SUCCESS    Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
    9:28:13,4233004    bds.exe    5812    FileSystemControl    E:    SUCCESS    Control: FSCTL_QUERY_USN_JOURNAL
    9:28:13,4233397    bds.exe    5812    FileSystemControl    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Control: FSCTL_READ_FILE_USN_DATA
    9:28:13,4233479    bds.exe    5812    CloseFile    E:    SUCCESS    
    9:28:13,4236493    MsMpEng.exe    2836    CreateFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Desired Access: Read Attributes, Synchronize, Disposition: Open, Options: Non-Directory File, Open For Backup, Open Reparse Point, Open Requiring Oplock, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
    9:28:13,4236584    bds.exe    5812    Load Image    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Image Base: 0x5fd00000, Image Size: 0x39000
    9:28:13,4236890    MsMpEng.exe    2836    FileSystemControl    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    OPLOCK HANDLE CLOSED    Control: FSCTL_REQUEST_OPLOCK
    9:28:13,4237062    MsMpEng.exe    2836    FileSystemControl    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Control: 0x902eb (Device:0x9 Function:186 Method: 3)
    9:28:13,4237184    MsMpEng.exe    2836    CloseFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    
    9:28:13,4239794    bds.exe    5812    CloseFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    
    9:28:13,4240243    MsMpEng.exe    2836    LockFile    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-shm    SUCCESS    Exclusive: False, Offset: 124, Length: 1, Fail Immediately: True
    9:28:13,4240504    MsMpEng.exe    2836    UnlockFileSingle    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-shm    SUCCESS    Offset: 124, Length: 1
    9:28:13,4240772    bds.exe    5812    QueryOpen    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    CreationTime: 03/04/2025 8:09:17, LastAccessTime: 22/04/2025 8:18:52, LastWriteTime: 26/02/2025 21:02:04, ChangeTime: 22/04/2025 8:18:52, AllocationSize: 937.984, EndOfFile: 937.448, FileAttributes: A
    9:28:13,4243298    bds.exe    5812    CreateFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    Desired Access: Read Data/List Directory, Execute/Traverse, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: n/a, ShareMode: Read, Delete, AllocationSize: n/a, OpenResult: Opened
    9:28:13,4243953    bds.exe    5812    QueryBasicInformationFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    CreationTime: 03/04/2025 8:09:17, LastAccessTime: 22/04/2025 8:18:52, LastWriteTime: 26/02/2025 21:02:04, ChangeTime: 22/04/2025 8:18:52, FileAttributes: A
    9:28:13,4244058    bds.exe    5812    FileSystemControl    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    INVALID DEVICE REQUEST    Control: 0x90390 (Device:0x9 Function:228 Method: 0)
    9:28:13,4244157    bds.exe    5812    QueryAttributeInformationVolume    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    FileSystemAttributes: Case Preserved, Case Sensitive, Unicode, ACLs, Compression, Named Streams, EFS, Object IDs, Reparse Points, Sparse Files, Quotas, Transactions, 0x3c02e00, MaximumComponentNameLength: 255, FileSystemName: NTFS
    9:28:13,4248810    MsMpEng.exe    2836    CreateFileMapping    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    FILE LOCKED WITH ONLY READERS    SyncType: SyncTypeCreateSection, PageProtection: PAGE_EXECUTE|PAGE_NOCACHE
    9:28:13,4248861    MsMpEng.exe    2836    QueryStandardInformationFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    AllocationSize: 937.984, EndOfFile: 937.448, NumberOfLinks: 1, DeletePending: False, Directory: False
    9:28:13,4249362    MsMpEng.exe    2836    ReadFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    Offset: 0, Length: 65.536, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
    9:28:13,4250367    MsMpEng.exe    2836    CreateFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Desired Access: Read Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Open For Backup, Open No Recall, Disallow Exclusive, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
    9:28:13,4250790    MsMpEng.exe    2836    QueryInformationVolume    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    BUFFER OVERFLOW    VolumeCreationTime: 01/04/2025 11:24:02, VolumeSerialNumber: 8230-F041, SupportsObjects: True, VolumeLabel: Proȼ
    9:28:13,4250875    MsMpEng.exe    2836    QueryAllInformationFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    BUFFER OVERFLOW    CreationTime: 03/04/2025 8:09:21, LastAccessTime: 22/04/2025 9:28:13, LastWriteTime: 26/02/2025 21:03:46, ChangeTime: 22/04/2025 9:28:13, FileAttributes: A, AllocationSize: 221.184, EndOfFile: 220.136
    9:28:13,4250957    MsMpEng.exe    2836    QueryInformationVolume    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    BUFFER OVERFLOW    VolumeCreationTime: 01/04/2025 11:24:02, VolumeSerialNumber: 8230-F041, SupportsObjects: True, VolumeLabel: Proȼ
    9:28:13,4250995    MsMpEng.exe    2836    QueryAllInformationFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    BUFFER OVERFLOW    CreationTime: 03/04/2025 8:09:21, LastAccessTime: 22/04/2025 9:28:13, LastWriteTime: 26/02/2025 21:03:46, ChangeTime: 22/04/2025 9:28:13, FileAttributes: A, AllocationSize: 221.184, EndOfFile: 220.136
    9:28:13,4251062    MsMpEng.exe    2836    FileSystemControl    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Control: FSCTL_READ_FILE_USN_DATA
    9:28:13,4251147    MsMpEng.exe    2836    QueryIdInformation    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    
    9:28:13,4251266    MsMpEng.exe    2836    CloseFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    
    9:28:13,4251777    MsMpEng.exe    2836    CreateFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Desired Access: Read Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Open For Backup, Open No Recall, Disallow Exclusive, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
    9:28:13,4251981    MsMpEng.exe    2836    QueryInformationVolume    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    BUFFER OVERFLOW    VolumeCreationTime: 01/04/2025 11:24:02, VolumeSerialNumber: 8230-F041, SupportsObjects: True, VolumeLabel: Proȼ
    9:28:13,4252025    MsMpEng.exe    2836    QueryAllInformationFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    BUFFER OVERFLOW    CreationTime: 03/04/2025 8:09:21, LastAccessTime: 22/04/2025 9:28:13, LastWriteTime: 26/02/2025 21:03:46, ChangeTime: 22/04/2025 9:28:13, FileAttributes: A, AllocationSize: 221.184, EndOfFile: 220.136
    9:28:13,4252073    MsMpEng.exe    2836    QueryInformationVolume    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    BUFFER OVERFLOW    VolumeCreationTime: 01/04/2025 11:24:02, VolumeSerialNumber: 8230-F041, SupportsObjects: True, VolumeLabel: Proȼ
    9:28:13,4252111    MsMpEng.exe    2836    QueryAllInformationFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    BUFFER OVERFLOW    CreationTime: 03/04/2025 8:09:21, LastAccessTime: 22/04/2025 9:28:13, LastWriteTime: 26/02/2025 21:03:46, ChangeTime: 22/04/2025 9:28:13, FileAttributes: A, AllocationSize: 221.184, EndOfFile: 220.136
    9:28:13,4252161    MsMpEng.exe    2836    FileSystemControl    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Control: FSCTL_READ_FILE_USN_DATA
    9:28:13,4252219    MsMpEng.exe    2836    QueryIdInformation    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    
    9:28:13,4252285    MsMpEng.exe    2836    CloseFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    
    9:28:13,4252592    MsMpEng.exe    2836    CreateFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Desired Access: Read Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Open For Backup, Open No Recall, Disallow Exclusive, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
    9:28:13,4252889    MsMpEng.exe    2836    QueryInformationVolume    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    BUFFER OVERFLOW    VolumeCreationTime: 01/04/2025 11:24:02, VolumeSerialNumber: 8230-F041, SupportsObjects: True, VolumeLabel: Proȼ
    9:28:13,4252939    MsMpEng.exe    2836    QueryAllInformationFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    BUFFER OVERFLOW    CreationTime: 03/04/2025 8:09:21, LastAccessTime: 22/04/2025 9:28:13, LastWriteTime: 26/02/2025 21:03:46, ChangeTime: 22/04/2025 9:28:13, FileAttributes: A, AllocationSize: 221.184, EndOfFile: 220.136
    9:28:13,4252990    MsMpEng.exe    2836    QueryInformationVolume    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    BUFFER OVERFLOW    VolumeCreationTime: 01/04/2025 11:24:02, VolumeSerialNumber: 8230-F041, SupportsObjects: True, VolumeLabel: Proȼ
    9:28:13,4253031    MsMpEng.exe    2836    QueryAllInformationFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    BUFFER OVERFLOW    CreationTime: 03/04/2025 8:09:21, LastAccessTime: 22/04/2025 9:28:13, LastWriteTime: 26/02/2025 21:03:46, ChangeTime: 22/04/2025 9:28:13, FileAttributes: A, AllocationSize: 221.184, EndOfFile: 220.136
    9:28:13,4253082    MsMpEng.exe    2836    FileSystemControl    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Control: FSCTL_READ_FILE_USN_DATA
    9:28:13,4253134    MsMpEng.exe    2836    QueryIdInformation    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    
    9:28:13,4253200    MsMpEng.exe    2836    CloseFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    
    9:28:13,4253513    MsMpEng.exe    2836    CreateFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Desired Access: Read Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Open For Backup, Open No Recall, Disallow Exclusive, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
    9:28:13,4253644    MsMpEng.exe    2836    FileSystemControl    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Control: FSCTL_READ_FILE_USN_DATA
    9:28:13,4253694    MsMpEng.exe    2836    CloseFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    
    9:28:13,4254065    MsMpEng.exe    2836    CreateFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Desired Access: Read Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Open For Backup, Open No Recall, Disallow Exclusive, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
    9:28:13,4254185    MsMpEng.exe    2836    FileSystemControl    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Control: FSCTL_READ_FILE_USN_DATA
    9:28:13,4254231    MsMpEng.exe    2836    CloseFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    
    9:28:13,4254963    MsMpEng.exe    2836    CreateFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    Desired Access: Read Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Complete If Oplocked, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
    9:28:13,4255104    MsMpEng.exe    2836    QueryIdInformation    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    
    9:28:13,4255407    MsMpEng.exe    2836    LockFile    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-shm    SUCCESS    Exclusive: False, Offset: 124, Length: 1, Fail Immediately: True
    9:28:13,4255522    MsMpEng.exe    2836    UnlockFileSingle    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-shm    SUCCESS    Offset: 124, Length: 1
    9:28:13,4255594    MsMpEng.exe    2836    CloseFile    E:\Embarcadero\Studio\23.0\bin\dclbindcompfmx290.bpl    SUCCESS    
    9:28:13,4261425    MsMpEng.exe    2836    ReadFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    Offset: 872.448, Length: 65.000, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
    9:28:13,4297425    MsMpEng.exe    2836    ReadFile    C:\ProgramData\Microsoft\Windows Defender\Scans\mpcache-96E076166D7C3E8DD6B697DE1DF0B47589343799.bin.7E    SUCCESS    Offset: 35.885.056, Length: 24.576, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
    9:28:13,4308729    MsMpEng.exe    2836    ReadFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    Offset: 684.032, Length: 65.536, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
    9:28:13,4317365    MsMpEng.exe    2836    ReadFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    Offset: 757.760, Length: 65.536, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
    9:28:13,4336065    MsMpEng.exe    2836    ReadFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    Offset: 749.568, Length: 8.192, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
    9:28:13,4345287    MsMpEng.exe    2836    ReadFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    Offset: 618.496, Length: 65.536, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
    9:28:13,4355193    MsMpEng.exe    2836    ReadFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    Offset: 823.296, Length: 49.152, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
    9:28:13,4505114    MsMpEng.exe    2836    LockFile    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-shm    SUCCESS    Exclusive: False, Offset: 124, Length: 1, Fail Immediately: True
    9:28:13,4505303    MsMpEng.exe    2836    UnlockFileSingle    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-shm    SUCCESS    Offset: 124, Length: 1
    9:28:13,4532230    MsMpEng.exe    2836    LockFile    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-shm    SUCCESS    Exclusive: False, Offset: 124, Length: 1, Fail Immediately: True
    9:28:13,4532364    MsMpEng.exe    2836    UnlockFileSingle    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-shm    SUCCESS    Offset: 124, Length: 1
    9:28:13,4532905    MsMpEng.exe    2836    ReadFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    Offset: 65.536, Length: 65.536, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
    9:28:13,4546099    MsMpEng.exe    2836    ReadFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    Offset: 131.072, Length: 98.304, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
    9:28:13,4554608    MsMpEng.exe    2836    ReadFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    Offset: 229.376, Length: 196.608, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
    9:28:13,4566743    MsMpEng.exe    2836    ReadFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    Offset: 425.984, Length: 192.512, I/O Flags: Non-cached, Paging I/O, Synchronous Paging I/O, Priority: Normal
    9:28:13,4677478    MsMpEng.exe    2836    LockFile    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-shm    SUCCESS    Exclusive: False, Offset: 124, Length: 1, Fail Immediately: True
    9:28:13,4677621    MsMpEng.exe    2836    UnlockFileSingle    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-shm    SUCCESS    Offset: 124, Length: 1
    9:28:13,4677802    MsMpEng.exe    2836    LockFile    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-shm    SUCCESS    Exclusive: False, Offset: 124, Length: 1, Fail Immediately: True
    9:28:13,4677932    MsMpEng.exe    2836    UnlockFileSingle    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-shm    SUCCESS    Offset: 124, Length: 1
    9:28:13,4678003    MsMpEng.exe    2836    LockFile    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-shm    SUCCESS    Exclusive: False, Offset: 124, Length: 1, Fail Immediately: True
    9:28:13,4678052    MsMpEng.exe    2836    LockFile    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-shm    SUCCESS    Exclusive: True, Offset: 120, Length: 1, Fail Immediately: True
    9:28:13,4678418    MsMpEng.exe    2836    WriteFile    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-wal    SUCCESS    Offset: 2.537.952, Length: 24
    9:28:13,4678599    MsMpEng.exe    2836    WriteFile    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-wal    SUCCESS    Offset: 2.537.976, Length: 4.096
    9:28:13,4678779    MsMpEng.exe    2836    WriteFile    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-wal    SUCCESS    Offset: 2.542.072, Length: 24
    9:28:13,4678828    MsMpEng.exe    2836    WriteFile    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-wal    SUCCESS    Offset: 2.542.096, Length: 4.096
    9:28:13,4678902    MsMpEng.exe    2836    UnlockFileSingle    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-shm    SUCCESS    Offset: 120, Length: 1
    9:28:13,4678944    MsMpEng.exe    2836    UnlockFileSingle    C:\ProgramData\Microsoft\Windows Defender\Scans\mpenginedb.db-shm    SUCCESS    Offset: 124, Length: 1
    9:28:13,4714466    MsMpEng.exe    2836    RegQueryKey    HKLM    SUCCESS    Query: HandleTags, HandleTags: 0x0
    9:28:13,4714614    MsMpEng.exe    2836    RegOpenKey    HKLM\SOFTWARE\Microsoft\Windows Defender    SUCCESS    Desired Access: Read/Write
    9:28:13,4715036    MsMpEng.exe    2836    RegQueryValue    HKLM\SOFTWARE\Microsoft\Windows Defender\ReportingGUID    NAME NOT FOUND    Length: 144
    9:28:13,4717932    MsMpEng.exe    2836    RegCloseKey    HKLM\SOFTWARE\Microsoft\Windows Defender    SUCCESS    
    9:28:13,4718041    MsMpEng.exe    2836    RegQueryKey    HKLM    SUCCESS    Query: HandleTags, HandleTags: 0x0
    9:28:13,4718427    MsMpEng.exe    2836    RegOpenKey    HKLM\SOFTWARE\Microsoft\Windows Defender    SUCCESS    Desired Access: Read/Write
    9:28:13,4718763    MsMpEng.exe    2836    RegCloseKey    HKLM\SOFTWARE\Microsoft\Windows Defender    SUCCESS    
    9:28:13,4718951    MsMpEng.exe    2836    RegQueryKey    HKLM    SUCCESS    Query: HandleTags, HandleTags: 0x0
    9:28:13,4719013    MsMpEng.exe    2836    RegOpenKey    HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Server\ServerLevels    NAME NOT FOUND    Desired Access: Query Value
    9:28:13,4719215    MsMpEng.exe    2836    RegQueryKey    HKLM    SUCCESS    Query: HandleTags, HandleTags: 0x0
    9:28:13,4719266    MsMpEng.exe    2836    RegOpenKey    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate    SUCCESS    Desired Access: Query Value
    9:28:13,4719396    MsMpEng.exe    2836    RegQueryValue    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\SusClientId    SUCCESS    Type: REG_SZ, Length: 74, Data: 157a656e-6a2a-44af-830d-deff70d50b5e
    9:28:13,4719500    MsMpEng.exe    2836    RegCloseKey    HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate    SUCCESS    
    9:28:13,4723409    MsMpEng.exe    2836    RegQueryKey    HKLM    SUCCESS    Query: HandleTags, HandleTags: 0x0
    9:28:13,4723509    MsMpEng.exe    2836    RegOpenKey    HKLM\System\Setup    SUCCESS    Desired Access: Query Value
    9:28:13,4723644    MsMpEng.exe    2836    RegQueryValue    HKLM\SYSTEM\Setup\Upgrade    NAME NOT FOUND    Length: 16
    9:28:13,4724544    MsMpEng.exe    2836    RegCloseKey    HKLM\SYSTEM\Setup    SUCCESS    
    9:28:13,4724670    MsMpEng.exe    2836    RegQueryKey    HKLM    SUCCESS    Query: HandleTags, HandleTags: 0x0
    9:28:13,4724732    MsMpEng.exe    2836    RegOpenKey    HKLM\SOFTWARE\Microsoft\Windows Defender\Scan    SUCCESS    Desired Access: Read/Write
    9:28:13,4724953    MsMpEng.exe    2836    RegQueryValue    HKLM\SOFTWARE\Microsoft\Windows Defender\Scan\LastOfflineScan    NAME NOT FOUND    Length: 20
    9:28:13,4725034    MsMpEng.exe    2836    RegCloseKey    HKLM\SOFTWARE\Microsoft\Windows Defender\Scan    SUCCESS    
    9:28:13,4725111    MsMpEng.exe    2836    RegQueryKey    HKLM    SUCCESS    Query: HandleTags, HandleTags: 0x0
    9:28:13,4725163    MsMpEng.exe    2836    RegOpenKey    HKLM\SOFTWARE\Microsoft\Windows Defender\Scan    SUCCESS    Desired Access: Read/Write
    9:28:13,4725282    MsMpEng.exe    2836    RegQueryValue    HKLM\SOFTWARE\Microsoft\Windows Defender\Scan\LastOfflineScanPreserved    NAME NOT FOUND    Length: 20
    9:28:13,4725345    MsMpEng.exe    2836    RegCloseKey    HKLM\SOFTWARE\Microsoft\Windows Defender\Scan    SUCCESS    
    9:28:13,4725422    MsMpEng.exe    2836    RegQueryKey    HKLM    SUCCESS    Query: HandleTags, HandleTags: 0x0
    9:28:13,4725474    MsMpEng.exe    2836    RegOpenKey    HKLM\SOFTWARE\Microsoft\Windows Defender\Reporting    SUCCESS    Desired Access: Read/Write

    ...
    9:28:13,5719160    MsMpEng.exe    2836    CloseFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    
    9:28:13,5719472    MsMpEng.exe    2836    CreateFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    Desired Access: Read Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Open For Backup, Open No Recall, Disallow Exclusive, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
    9:28:13,5719607    MsMpEng.exe    2836    QueryInformationVolume    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    BUFFER OVERFLOW    VolumeCreationTime: 01/04/2025 11:24:02, VolumeSerialNumber: 8230-F041, SupportsObjects: True, VolumeLabel: Proȼ
    9:28:13,5719653    MsMpEng.exe    2836    QueryAllInformationFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    BUFFER OVERFLOW    CreationTime: 03/04/2025 8:09:17, LastAccessTime: 22/04/2025 8:18:52, LastWriteTime: 26/02/2025 21:02:04, ChangeTime: 22/04/2025 8:18:52, FileAttributes: A, AllocationSize: 937.984, EndOfFile: 937.448
    9:28:13,5719703    MsMpEng.exe    2836    QueryInformationVolume    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    BUFFER OVERFLOW    VolumeCreationTime: 01/04/2025 11:24:02, VolumeSerialNumber: 8230-F041, SupportsObjects: True, VolumeLabel: Proȼ
    9:28:13,5719750    MsMpEng.exe    2836    QueryAllInformationFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    BUFFER OVERFLOW    CreationTime: 03/04/2025 8:09:17, LastAccessTime: 22/04/2025 8:18:52, LastWriteTime: 26/02/2025 21:02:04, ChangeTime: 22/04/2025 8:18:52, FileAttributes: A, AllocationSize: 937.984, EndOfFile: 937.448
    9:28:13,5719801    MsMpEng.exe    2836    FileSystemControl    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    Control: FSCTL_READ_FILE_USN_DATA
    9:28:13,5719854    MsMpEng.exe    2836    QueryIdInformation    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    
    9:28:13,5724177    MsMpEng.exe    2836    CloseFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    
    9:28:13,5724762    MsMpEng.exe    2836    CreateFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    Desired Access: Read Attributes, Synchronize, Disposition: Open, Options: Synchronous IO Non-Alert, Open For Backup, Open No Recall, Disallow Exclusive, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
    9:28:13,5724967    MsMpEng.exe    2836    FileSystemControl    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    Control: FSCTL_READ_FILE_USN_DATA
    9:28:13,5725040    MsMpEng.exe    2836    CloseFile    E:\Embarcadero\Studio\23.0\bin\bindcompfmx290.bpl    SUCCESS    

     


     

     

    How can I know where is the problem?

    Thanks.

     


  11. -Make updates less painful. At least save a list of GetIt components installed and reinstall them automatically in next version.
    -Add animations to VCL
    -And/or add an option to FMX to create Windows-only applications that allow to use native Windows controls like TToolBars and alike
    -Find a way to do the same that anonymous methods can do but without the same problems for readability.

    And sponsoring updating third party controls like JVCL and others to be in line with current UI could be an incentive for some people to upgrade.


  12. This happens in the first execution of bds after installation, so that problem shouldn't exist if Getit had uninstalled them rightly. I uninstalled Navigator by hand because I had read that was the only one that gave trouble. It seems I was wrong.


  13. After installing new version I get lots of errors like this:


     

    Quote

     

    No se encuentra el punto de entrada del procedimiento @Idetheme@Utils@TIDEDialogRegistryServices@$bcctr$qqrv en la biblioteca de vínculos dinámicos C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\dclIconFontsImageList290.bpl.


     

    That file has date 23/9/2024. Is that the new version or the old one that wasn't uninstalled? Should I repeat the whole process again?

    Thanks.


  14. Thanks for the suggestions.

    Returning a dummy value would mean rewriting the stored procedures so that's a no-no.

    I'm trying to avoid Variants because in the past I've had problems with variants <-> float. I've tried this instead


     

    procedure ProcValorDeCombo(var pn_param: TFDParam; pt_Combo: TComboBox);
    var
     vn_marca: double;
    begin
      case pt_Combo.ItemIndex of
       -1: begin 
             // code ...
             pn_param.AsFloat := vn_marca;
           end;
    
       // code...
       else pn_param.Clear;    
      end;
    end;

    but when I try to call it

    ProcValorDeCombo(ParamByName('myparam'), mycombo);

    I get E2197 Constant object cannot be passed as var parameter

     


  15. Hello. I'm trying to create a function that can return a float or nil:

     

    function myfunc(const pa_value:string): double;
    begin
      if pa_value = whatever then result := -1
      else result := nil;
    end;

    to replace many lines like this (simplified code):

    if check then
    parambyname('myparam').asfloat := -1
    else
    parambyname('myparam').clear;

    What is the right way to do that?

    Thanks.


  16. Hello. I have 2 folders called CatalogRepository. One is C:\Users\usuario\Documents\Embarcadero\Studio\23.0\CatalogRepository and another one in D:\Delphi12\CatalogRepository.
    I think this last one is the folder I chose during installation.
    Each of them occupies several gigabytes. The one in C contains Fastreports, Jedi, Styles.. and the one in D has Android NDK, Konopka, FmxLinux,...

    Are both neccessary? Can I delete any of them to save some space?

    Thanks.

     


  17. If I copy an exe that uses skia to another computer I get

     

    Runtime error 217 at 00EA254C

     

    Options:

    -Allow to include skia in the exe (like midaslib)

    -Show the right error message and an option to download sk4d.dll

    -????

     

    And another problem is that that dll doesn't have a version. If they solve a bug in a new version, how can we know if the user has the right version?

     

    Does this make sense? Has anyone asked Embarcadero to improve it?

     

    Thanks.

     

×