Jump to content

FPiette

Members
  • Content Count

    1120
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by FPiette

  1. FPiette

    Copy bitmap from one app to another app bitmap

    Warning: object such as TBitMap in the DLL will not be recognized as a TBitmap in the EXE, unless they both use run-time packages.
  2. FPiette

    New OpenSSL release 3.1.0

    It is up and running now. Sorry.
  3. FPiette

    Methods from Libraries (bpl or pas) in Apps??

    I adding to what other said, be aware that if the unit has initialization/finalization sections, then any code referenced directly or indirectly referenced by these section will also be linked in.
  4. FPiette

    VCL and VCL styles - bugs and future

    Try giving your thread a message pump, and pumping messages while processing the document.
  5. You probably need to read the official documentation. Buying a good book is also useful. You'll find more books at https://delphi-books.com/en/. BTW: It is better you keep asking ONE question per post. I answered only the first...
  6. Don't forget to check older compilers/RTL because this cross platform is not that old.
  7. FPiette

    AliexpressAPI

    I guess you even not tried the link I gave. The first result give all needed explanation. https://developers.aliexpress.com/en/doc.htm?docId=121124&docType=1
  8. FPiette

    AliexpressAPI

    Google is your friend! https://www.google.com/search?q=aliexpress+api
  9. FPiette

    pdfDoc

    Use PowerPdf : Install it using GetIT package manager directly from the IDE. Or visit https://github.com/TurboPack/PowerPDF. It is free. I do it for more than 10 years with great success.
  10. Forget XML. It is slow and memory hungry. Use a TObjectList containing object describing the item. All item objects derive from the same base class having common properties like X,Y, scale, rotate,... Yes, this is the way to go. It is faster to draw in memory and gives a flicker free display update. Anyway you need to draw to an offline bitmap to save the result in a file. You draw all elements to an offline bitmap, including the big parent image and then you display it. You can optimize speed of display by remembering the area which has been updated since la time it has been output to screen. About the library: As I said before you only need graphic primitive. You'll do the rest yourself in your application. To select the library - if ever one is needed because there is already so much in FMX framework - first establish the list of all operations or features you need. Then you can select one.
  11. Reading your post, I think you are looking for a library which does exactly what your application has to do. That would be marvelous but forget it! You actually need a library (or even none since you can use Delphi built-in function) capable of doing primitive graphic manipulation and display. Speaking about the main image - as you name it - your application should have a model of what is expected on screen and a rendering engine. The model is a list of operation applied to images. The list is ordered. By manipulation, I mean and image, and an operation such as position at X/Y coordinate, rotate of a given angle, scale with a given factor, crop this way, mask like that, and so on. The user interaction solely work on the list. When the user want to move an image, you use mouse event and the list to find which (sub)image if on the top and the user want - for example - drag. At each user interaction, you do the rendering. At the end, instead of rendering on screen, you render to a standard bitmap that you write as JPG or other image file format. Got the idea?
  12. FPiette

    Using EdgeBrowser

    Yes, there is: https://blogs.embarcadero.com/execute-scripts-and-view-source-with-tedgebrowser/ Look at subtitle "View The Source".
  13. They work even easier than I thought: When registering a property sheet, it is enough to register it in the SystemFileAssociations. No need to register the class for the file extension nor the file class. To register a property sheet for .foobar files, under de key HKLM\SOFTWARE\Classes\SystemFileAssociations\.foobar\ShellEx\PropertySheetHandlers (May also have to be create) create an entry with the name registered for the COM object implementing the shell extension and set default value to the CLSID. This is an important feature for me to avoid interfering with an existing file type already having a program defined. Tested the behavior with both Win10 and Win11.
  14. On my system, the key HKCR\SystemFileAssociations\.arw exist. I updated my property sheet registration code to write a new key HKCR\SystemFileAssociations\.arw\shellex\PropertySheetHandlers\MyDelphiPropSheetHandler having as default value the CLSID of my property sheet. And Bingo! it works. @Anders Melander you are a master! Congratulations!
  15. Yes, I used ProcessMonitor. It is even among the first things I have done. But there is an incredibly high registry activity from explorer.
  16. Yes, but the property page crashes explorer Just to be sure, you opened a real .arw file (My sample?) by double clicking on his filename in Explorer window and Windows Photo Viewer displayed it correctly. Right?
  17. You have the source: the property page itself contains just a TMemo and no processing is done. Selected files in explorer are displayed (Explorer actually passes paths). I also occasionally saw that message. I couldn't reproduce the condition in which this arrive although I suspect this is when a second instance of the property sheet is opened.
  18. I posted a question there: https://superuser.com/q/1773093/350495
  19. Can you open an .arw file? Yes, it is exactly the same problem. BTW: You should probably upgrade your Win7 to Win11.
  20. You code works correctly for the non existent .foobar file extension. But if I change the file extension to the existing .arw, it doesn't work anymore! Tested on Win10 and Win11 with same result. To change the file extension, I modified 3 code lines in your source: // sFileClass = 'FoobarFile'; // sFileType = 'File of foo'; // sFileExtension = '.foobar'; sFileClass = 'ArwFile'; sFileType = 'File of arw'; sFileExtension = '.arw'; Is it possible for you to test? Before testing, verify that .arw extension exists on your system and you can open a file with that extension. If you have no .arw file, you can download a photo in .ARW format: http://wiki.overbyte.be/arch/FPI09894.ARW If you run Win10, you need to install Microsoft RAW extension from Microsoft store (https://apps.microsoft.com/store/detail/extension-dimage-raw/9NCTDW2W1BH8) It is needed for Win10 but already included by default with Win11. "RAW Extension" cover a bunch of file extension which are a file format used by camera makers. The extension varies with each camera maker. Arw files are from Sony. Canon, Nikon, Panasonic and all other have a specific extension, sometimes several different!
  21. I missed that. Sorry. Thanks!
  22. There are much more changes in my code than the excerpts you published. Would you publish or send to me the full source code as you modified?
  23. Thank you so much for the hint. I have to study that code to understand which keys it register. I added it manually, it doesn't make it works. I don't understand what you are talking about. Do you mean my source code layout?
  24. I did not create the "HKLM\SOFTWARE\Classes\CLSID\{AF6B...}\ProgID" subkey. It is created by the code in ComObj to register the COM object. This is in TComObjectFactory.UpdateRegistry line 985 in Delphi 11.3 System.Win.ComObj.pas. I assume this is normal way of doing the registration. Removing that subkey doesn't change anything.
  25. Wonderful. From the screen dump I cannot determine that the property sheet handler is registered for all extensions (That work here also) or for a single one (Don't work here). If REG_FILENAME symbol is defined, my code will register for a single file extension (.arw in my original code), that is what you need to try. I will really be grateful for that code.
×