Jump to content

gwideman

Members
  • Content Count

    13
  • Joined

  • Last visited

Posts posted by gwideman


  1. I appreciate your answers, but I'm still not completely understanding how to make this work...   A couple of followup questions below:

     

    9 hours ago, Vincent Gsell said:

    Doc on Skia Github page contains usefull code to convert svg to bmp 

    https://github.com/skia4delphi/skia4delphi/blob/main/Documents/SVG.md

    Are you referring to the Rendering SVG example?  If so, I'm afraid that example is too incomplete to show how it relates to my task, which is essentially "input an SVG file, render it to a bitmap or canvas." 

    In that example, it's not clear to me:

    • where "ACanvas" comes
    • what is the role of the procedure parameter in the SkiaDraw procedure. I infer that it takes part in rendering the SVG. But under what circumstances does SkiaDraw invoke it? Why so convoluted?  I didn't find any doc on SkiaDoc,,  so if there is doc for that procedure it might shed some light.

     

    9 hours ago, Vincent Gsell said:

     

    From an skia's image (do not remomber if available from skSVG.

    https://docwiki.embarcadero.com/Libraries/Athens/en/FMX.Skia.SkImageToBitmap

     

    For VCL: 

    function SkImageToBitmap(const AImage: ISkImage): TBitmap;

    Where do I get the ISkImage from?

     

    Thanks all!

     


  2. I would like to use VCL.Skia.TSkSvg to render an SVG, and then copy the resulting bitmap to another control, for example a TImage.

     

    I though that might be possible using TSkSvg's Canvas, but that's protected, so presumably not the way to do it.

     

    I noticed that FMX.Skia.TSkSvg has a (inherited) PaintTo method, but the VCL version does not.

     

    So what is the correct approach?  Thanks!

     

    For bonus points -- is it possible to perform the above with the TSkSvg control not visible on the Form?


  3. 1 hour ago, Remy Lebeau said:

    Because only 1 patch has been released so far. And that was for 12.0, not for 12.1.

    ... well actually, visiting my account, it turns out that there is another Patch 1, this for 12.1, released 2024-04-18.  Though presumably it makes more sense to install that via Getit, which I'm assuming will offer it once 12.1 is installed?  We will see.

     

    Your point is valid of course... for a customer with 12.0 installed, there is one patch available, called Patch 1.  But that was not the last patch released, as we have this Patch 1 for 12.1.

     

    Anyhow, now I'm stalled because it's not clear whether I can just install 12.1 over 12.0, or have to uninstall 12.0 first.  I am skeptical that in 2024 an uninstall is required, but at https://docwiki.embarcadero.com/RADStudio/Athens/en/Installation  there's this obtuse note:

    Quote

     

    "Upgrading RAD Studio Athens
    Attention: You do not need to follow these steps to install a different version of RAD Studio. Different versions of RAD Studio can coexist on the same system.

    To replace RAD Studio Athens with a better edition or an update of RAD Studio Athens, you must remove RAD Studio Athens from your system and install your upgraded edition or update of RAD Studio Athens."

     

    So, this appears to say you do have to uninstall.  What happens if you do not? Why can't the installer just take care of this?  And does that require uninstalling the 3rd party components as well?

     

    (Not the topic I originally posted... but frustrating that a ".1" update is not just a one-click process.)


  4. On 3/17/2024 at 8:57 PM, Remy Lebeau said:

    In modern versions, IDE updates are released on GetIt. Simply check there if any updates are available for download.

    Well, I've been diligently looking in Getit under Updates, and after Patch 1, nothing more appeared.

     

    I have only just today realized that Patch 1 is apparently not the same as 12.1, but rather 12.1 is called Release 1. And that never appeared in Getit, and so despite following the recommended procedure to determine if Delphi is up-to-date, apparently it is now 3 months behind.

     

    This is just stupid.  I don't see why Delphi can't have a plain and simple "Check for update" function that covers any and all new versions of the software.


  5. Hmm, OK I guess. 

     

    For some reason, when I previously tried the Updates filter with Category All, it returned nothing.  I see your screen cap shows Patches and Hotfixes, and that does return a result, so thanks for that.

     

    Problem is, GetIt muddles together 100's of offerings from multiple vendors, and the filters are ambiguous, so it's either hard to see the forest for the trees, or if you get rid of the trees (or is it the forest?) there's nothing left and hard to tell the meaning of "No result". 

     

    I had also tried using the Search box set to "Embarcadero", but that only finds items that mention that name in the description, and doesn't find any items whose vendor is Embarcadero.   I tentatively concluded that perhaps updates to RAD Studio were listed under some other vendor name.

     

    It wasn't clear what other term I could search for to bring up possible updates. Actually using "update" fetched two items that were irrelevant.

     

    I was hoping to find a feature that provides a positive statement "your installation of the IDE is at the latest version".  The current "no search results" fails to distinguish between "your installation is up-to-date" and "you didn't guess the right filter and search terms".

     

    Anyhow, thanks for your help.


  6. 20 minutes ago, Remy Lebeau said:

    In modern versions, IDE updates are released on GetIt. Simply check there if any updates are available for download.

    Thanks for your reply.   Your suggestion sound plausible, but how, exactly?

    Tools > Getit Package Manager gets me the Getit Package Manager window. Then what?

     

     


  7. In most products there's a Check for Updates function on the Help menu, but not in the Delphi 12 IDE.

     

    docwiki search finds this page "Check for Updates https://docwiki.embarcadero.com/RADStudio/Sydney/en/Check_for_Updates, last updated in 2015.  But I can find no such Check for Updates Start menu item, link or function inside the IDE, in D12, (nor in D10.4 that this page supposedly pertains to).

     

    One could check the Release Notes at http://docwiki.embarcadero.com/RADStudio/Athens/en/Release_Notes

    ... except that page has loads of info about installation, but no actual release notes. Sigh.

     

    So how the heck do you check if your IDE is up to date?


  8. 14 minutes ago, JonRobertson said:

    Once you add pngimage to the uses clause of any unit, the TPNGImage class is registered with TPicture, which enables your application to load and save PNG images.  [...]

     

    Thanks for your rapid response!   This seems like the key information.  The docs for TPicture  are also a little unhelpful:

    Quote

    TPicture is a TGraphic container, used to hold a graphic, the type of which is specified in the Graphic property. It is used in place of a TGraphic [in what context?] if the graphic can be of any TGraphic class. LoadFromFile and SaveToFile are polymorphic. For example, if the TPicture is holding an Icon, it is valid to LoadFromFile a bitmap file, where the class TIcon can only read .ICO files.

    If the TPicture contains a bitmap graphic, the Bitmap property specifies the graphic. If the TPicture contains an icon graphic, the Icon property specifies the graphic. If the TPicture contains a metafile graphic, the Metafile property specifies the graphic.

    The properties of TPicture indicate the type of graphic that the picture object contains, and its size. The methods of TPicture are used to load, save, and manipulate graphics.

     

    So does this apparatus expect us to first set the Graphic property to the desired type of TGraphic, and then perform operations like LoadFromFile?  The description makes it sound like this causes LoadFromFile to convert from the file's type of image data to the type of image data you've preset in Graphic.

     

    Or is it OK starting with nothing set for Graphic, and then just calling LoadFromFile creates the object that Graphic points to, of a type that matches the input image data? 

     

    And are the Bitmap, Icon, Metafile, and WICImage properties pointers to separate actual objects? Or are they just more-specifically typed pointers to the same object that Graphic points to (ie: at most one would be valid).  What happens if the graphic type is not one of the default ones, as with TPNGImage and TJPEGImage?

     

    Thanks for any further clues on how to work with this apparatus rather than against it, or via random flounder :-).


  9. The documentation for Vcl.Imaging.pngimage.TPngImage (http://docwiki.embarcadero.com/Libraries/Athens/en/Vcl.Imaging.pngimage.TPngImage) says:

     

    Quote

    Use TPngImage to load and manipulate PNG (Portable Network Graphics) graphics. . It is not required to use the TPngImage class directly. If you need your application to accepts PNG images, simply add the pngimage unit in the uses list. This operation ensures that the PNG graphic format is registered in the VCL.

     

    Say what?!?  First it says to use TPngImage, then is says you don't need to use it.  Then it goes on to say that if you add pngimage to the uses clause, something helpful happens, but doesn't say what.

     

    I'd appreciate if someone could spell out what is this favored method of using TPngImage without actually using it.


  10. On Quality Central I was hoping to look up an issue I filed some time ago. But I got these messages:

    Query:  reporter = currentUser() ORDER BY createdDate DESC

    Error: Field 'reporter' does not exist or you do not have permission to view it.

     

    20230527_QC_permission_problem.thumb.png.fe31d397c178cfab856339064e9efb18.png

     

    This appears to be the underlying issue database saying that it can't find any records because it can't apply the WHERE clause.

     

    If the site offers the Reported by Me function, and can't execute it, that's a bug, right?

     

    I also could not figure out how to submit a bug about QC to QC.

×