Jump to content

PeterPanettone

Members
  • Content Count

    1191
  • Joined

  • Last visited

  • Days Won

    5

PeterPanettone last won the day on August 2 2021

PeterPanettone had the most liked content!

Community Reputation

150 Excellent

Technical Information

  • Delphi-Version
    Delphi 12 Athens

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Managing applications in general by giving the user the information on which file extensions open a specific application. This information lets the user decide which file extensions are allowed or should open a particular application.
  2. There is a function AssocQueryString in shlwapi.dll.
  3. That's why I wrote "multiple, countless references and back-references." Has no one really ever written a function to enumerate the list of file extensions associated with a specific application?
  4. When I try to get the list of all file extensions from the Registry associated with a specific application (double-clicking on the file opens the application), I encounter a complex, almost impenetrable maze of multiple, countless references and back-references that seems almost impossible to resolve. It would be helpful if there were a "magical" function like GetListOfAssociatedFileExtensions('notepad.exe', 'open'); Is there a known solution to this problem? For a test, I've started by enumerating all file-extension subkeys in the Registry: function EnumerateFileExtensions: TStringList; var reg: TRegistry; subkeys: TStringList; i: Integer; key: string; begin Result := TStringList.Create; subkeys := TStringList.Create; reg := TRegistry.Create(KEY_READ); try reg.RootKey := HKEY_CLASSES_ROOT; // Open the key for reading if reg.OpenKeyReadOnly(key) then begin reg.GetKeyNames(subkeys); reg.CloseKey; // Log the retrieved subkeys CodeSite.Send('Subkeys:', subkeys.Text); // Iterate through subkeys and filter those starting with a dot for i := 0 to subkeys.Count - 1 do begin if Subkeys[i][1] = '.' then begin // Add the subkey to the result list Result.Add(subkeys[i]); end; end; end; finally reg.Free; subkeys.Free; end; end;
  5. PeterPanettone

    What new features would you like to see in Delphi 13?

    Another interesting possibility is to create DLLs using Python that Delphi applications can use. Python provides several ways to create DLLs, including using the ctypes module or the cffi module or compiling Python code to a shared library using tools like Cython or PyInstaller.
  6. PeterPanettone

    Delphi 12 Local CHM Documentation

    Ian Barker wrote in a comment on that page on March 7, 2024: "Ultimately it should be a superior solution. It’s taken longer than we expected to get it launched but we are almost ready with it now."
  7. In Delphi 12, when pressing F1 in Vcl.Buttons.TSpeedButton.SelectedImageIndex in ObjectInspector, after a while, this topic is displayed: Can anyone confirm this? Is the Embarcadero Quality Portal already online?
  8. PeterPanettone

    What new features would you like to see in Delphi 13?

    As a developer who deals a lot with design, I find Delphi's lack of layout options a thorn in my mind. The layout features in Delphi are one-dimensional (e.g., property Align). Delphi lacks a layout component like TdxLayoutControl from DevExpress for a professional design: In practice, the lack of professional layout capabilities results in many bumbling-looking applications, with controls that sometimes overlap when run on a device with display settings different from those of the original application developer. This shortcoming has given Delphi the unjustified reputation of being an unprofessional amateur developer tool. That's why my greatest wish for the Delphi community would be a native layout control from Embarcadero. Or even better, Embarcadero should buy the TdxLayoutControl component from DevExpress and integrate it into the Professional version. This would give Delphi the professionalism it deserves due to its other capabilities.
  9. PeterPanettone

    Menu boundaries from MenuHandle?

    Thank you very much; I am now able to find the menu rectangle: function PAGetDisplayedMenuRectangle: TRect; var MenuWnd: HWND; begin // Initialize the result rectangle to zero FillChar(Result, SizeOf(Result), 0); // Find the window handle of the active menu MenuWnd := FindWindowEx(0, 0, MAKEINTATOM($8000), nil); if MenuWnd <> 0 then begin // If the menu window is found, get its rectangle if not GetWindowRect(MenuWnd, Result) then begin // If GetWindowRect fails, reset the result to zero FillChar(Result, SizeOf(Result), 0); end; end; end;
  10. I am trying to encapsulate the TaskDialog properties, its execution, and its result in a single unit: unit MyTaskDialogDNSAExpandable; interface uses Vcl.Dialogs, Winapi.Windows, Vcl.Controls; type TDialogResultWithDNSA = record ModalResult: Integer; DoNotShowAgain: Boolean; end; function ShowTaskDialogWithDNSAAndInfoText(const ATitle, AContent, ADNSACaption, AInfoText: string): TDialogResultWithDNSA; implementation function ShowTaskDialogWithDNSAAndInfoText(const ATitle, AContent, ADNSACaption, AInfoText: string): TDialogResultWithDNSA; var TaskDialog: TTaskDialog; begin TaskDialog := TTaskDialog.Create(nil); try TaskDialog.Caption := ATitle; TaskDialog.Text := AContent; TaskDialog.CommonButtons := [tcbOk, tcbCancel]; TaskDialog.VerificationText := ADNSACaption; TaskDialog.ExpandedText := AInfoText; TaskDialog.Flags := [tfUseCommandLinks, tfAllowDialogCancellation, tfExpandFooterArea]; // Execute the task dialog if TaskDialog.Execute then begin Result.ModalResult := TaskDialog.ModalResult; Result.DoNotShowAgain := ??? // how can I get the DoNotShowAgain state of the TaskDialog end else begin Result.ModalResult := mrCancel; Result.DoNotShowAgain := False; end; finally TaskDialog.Free; end; end; end. But how can I get the DoNotShowAgain state of the TaskDialog in Delphi 12?
  11. PeterPanettone

    Menu boundaries from MenuHandle?

    By using MSAA (Microsoft Active Accessibility), I can get the MenuHandle of a menu when the menu is displayed. How can I get the boundaries of the displayed menu from the MenuHandle?
  12. PeterPanettone

    What new features would you like to see in Delphi 13?

    How do you set DPI Unaware mode?
  13. PeterPanettone

    What new features would you like to see in Delphi 13?

    Have you really asked an AI for a bike rental? Are you serious?
  14. PeterPanettone

    What new features would you like to see in Delphi 13?

    The irony was implicit.
  15. PeterPanettone

    What new features would you like to see in Delphi 13?

    In a large project, I always have to wait for code insight.
×