Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 06/27/24 in all areas

  1. This is still a work in progress, but I'm really happy with how it is going so far so I thought I would share... https://github.com/jimmckeeth/FMXColorDialog There are a few custom components in the dialog, and there is a palette code library, plus there is a new CMYK color record. Just fun project to mess around with on vacation. FMXColorDialogSample_PseA8aEaZC.mp4
  2. That post is extremely difficult to understand. Documentation is here: https://docwiki.embarcadero.com/RADStudio/Athens/en/Methods_(Delphi)#Overriding_versus_Hiding No, the purpose of reintroduce is to suppress the compiler's warning that you are hiding the inherited method. It is a way for you to tell the compiler that you know what you are doing and to not bother you about it.
  3. I guess there are people with differing levels of ability. And while I don't intend to post links to all videos, today's video is a real-world example of adding code to a word search game and squashing those pesky bugs along the way! Hopefully, it will inspire you to tackle your own coding challenges and share your creations in the comments! https://youtu.be/K1iJIYtBPaw
  4. Patrick PREMARTIN

    Cross platform color picker and palette library

    In that case, perhaps adding https://www.whocanuse.com/ could be fun ?
  5. Dalija Prasnikar

    Thread leaks report (FastMM4)

    Raising exceptions in constructor never ever lead to memory leaks. Only if the code in destructor is bad and is not able to clean up partially initialized object instances. such situations may look like raising exception in constructor is at fault, while actually it is the destructor that needs to be fixed in such case.
  6. Dave Novo

    Parallel.For optimization

    There is also FastMM5. However, I would suggest looking at your code and figuring out a way to allocate required memory (even if you have to overallocate) and minimize/eliminate heap memory allocations during the threading code.
  7. Uwe Raabe

    Minor Uninstaller bug

    This usually happens when MMX has been installed for all users, i.e. as an admin. That will use HKLM for the Experts entry, which will be copied to HKCU when a user starts Delphi. As the installer didn't add these registry entries, it refuses to remove them when uninstalling (this is standard behavior of InnoSetup). Actually, these kind of quirks are the reason why Install for me only is recommended. If you are the only user at the system it doesn't matter at all and if you are not, each user will have its own copy of MMX installed (they can even have different versions). I always try to clean up as neatly as possible when uninstalling, but I didn't find a reliable way to do that without jumping through hoops with the registry and several user folders.
  8. Leif Uneus

    Thread leaks report (FastMM4)

    Barry Kelly explains it rather good in a comment: https://herbsutter.com/2008/07/25/constructor-exceptions-in-c-c-and-java/
  9. msohn

    Thread leaks report (FastMM4)

    You're missing TObject.InitInstance which ensures all fields are initialised before the constructor is called. Edit: link for convenience https://docwiki.embarcadero.com/Libraries/Athens/en/System.TObject.InitInstance
  10. Jim McKeeth

    Cross platform color picker and palette library

    I made the different color system boxes collapsible. When I add more I'll default to collapsing the less common ones, and make it based on preference. Yes it is. I'm working on named colors and more palette options now.
  11. pyscripter

    PyScripter - Integration with LLM

    @Stéphane Wierzbicki PyScripter with LLM support was released. See LLM_Support · pyscripter/pyscripter Wiki (github.com) for details.
  12. Dalija Prasnikar

    Thread leaks report (FastMM4)

    The above code is fine. Free can be called on nil object reference. Testing whether it is assigned before calling Free is redundant.
  13. dummzeuch

    Thread leaks report (FastMM4)

    I see no problem with raising an exception in a constructor, provided you write the destructor in a way that can handle a partly constructed instance. Since you can't prevent any system or RTL exception to be raised from within the constructor, you'll have to handle that case anyway. Always keep in mind that an exception in a constructor will cause the destructor being called immediately. So don't do this: constructor TBla.Create; begin inherited; FSomeHelperObject := TSomeClass.Create; end; destructor TBla.Destroy; begin FSomeHelperObject.Free; // <== this might cause an AV if FSomeHelperObject hasn't been assigend inherited; end; But do this instead: destructor TBla.Destroy; begin if Assigned(FSomeHelperObject) then FSomeHelperObject.Free; inherited; end; (Or use FreeAndNil, which basically does the same internally.) You can easily test if your destructor can handle this case by temporarily putting a raise exception.Create('test') as the first statement in your constructor (before even calling inherited Create). I'm sure we are all guilty of writing wrong destructors at some time though.
  14. Der schöne Günther

    Thread leaks report (FastMM4)

    I am absolutely bewildered. That is absolutely not true. See: Methods (Delphi) - RAD Studio (embarcadero.com) or: https://stackoverflow.com/a/39110161 This is the first time I ever heard something like this.
  15. dummzeuch

    Release or Debug?

    I am taking yet another different approach: The "If you download the sources, the buildnumber will 0. Live with it." approach.
  16. Darian Miller

    Is there a Delphi "subprocess" library?

    There's quite a few options out there. I wrote a related blog post and provided some example code: https://ideasawakened.com/post/use-createprocess-and-capture-the-output-in-windows
  17. Brandon Staggs

    Cross platform color picker and palette library

    Looks great! If you really want it overengineered add the various component video color spaces to. YCbCr component video (and YUV too) might actually be useful in the video editing space.
  18. limelect

    Cross platform color picker and palette library

    I added a comment on Git
  19. Fudley

    TSkAnimatedImage assign?

    Checked the source. Its: [TSkAnimatedImage] .Source.assign([ other TSkAnimatedImage ].source); What a wonderful set of components the Skia set are. Very well done to the author!
  20. Nitpick at 10:30 - strings are always empty when not explicitly initialized like all managed types.
  21. DelphiUdIT

    Delphi 12 error when closing the ide

    Most often this happens if you use third-party components. Try uninstalling add-ons (such as those installed by GETIT) one at a time to find which one might be generating the AV (assuming it depends on the added components).
  22. Hey Attila, Thank you very much !!! I don't see that as an issue. I see that as a fact of life, like everyone has a personal life. Then you chose to make the time for it or not, and that depends on your schedule and your will to participate. I'm not putting a gun on anyone's head, just proposing a fun, and quite optional, exercise in programming. Cheers, Gus
  23. Uwe Raabe

    What's the general opinion on v12?

    Hard to believe...
  24. Rollo62

    FMX Tabcontrol Tab Hight

    I usually don't rely on the TabControl UI for multi-plattform. The TabControl itself works fine, but I remove its visual Tabs and use separate navigation controls to switch between Tabs, for example simple TButton's in a separate TLayout. That way I have full control over behaviour and appearance and the UI and the navigation can even separated from the tab-control itself, or even easily replaced by different visual impressions for different device categories ( phone, tablet, desktop).
×