Jump to content

Rollo62

Members
  • Content Count

    1671
  • Joined

  • Last visited

  • Days Won

    22

Everything posted by Rollo62

  1. Rollo62

    Disable control resizing at design time.

    Do you mean something like Anchor ?
  2. Rollo62

    Farewell Rx10.4.2

    @Darian Miller Thanks for such list, that is very helpful. Such a general "Can-I-Use" list would be a big step to more quality, but I'm afraid this will end as fulltime job. I'm not sure if preparing such useful lists could be done with Github or other tools on-the-fly, maybe so. Anyway, I think this would be a perfect community work, to prepare especially something like Delphi polyfills, to add certain "workaround" to each issue. If anybody knows how such work could be "automated", that would be great, maybe this could be even a side-project within DP ? Anyway, my recipe to avoid most issues are the following: - don't use the latest features immediately, just observe and test, but let them "stabilize" - avoid using the latest fancy hot components, like TNumberBox, just take the time to build your own from more basic components ( I highly recommend frames for this ) - try to use only minimal, absolute necessary external components, to avoid too much external bindings - modularize your libraries, so that they can be easier be managed and replaced (if needed ), single responsibility principle is also very much true for units IMHO, so I try to decouple functions into separate spaces. - tweak the Delphi core units, whereever needed, to workaround issues and to receive the desired behaviour you want to have ( record helper or interposer) - UnitTest most of your work, to be able to spot sudden changes early
  3. Rollo62

    TListView OnItemClick problems

    I think you could bind the Tag property too, with LiveBindings. For me the whole LB thing is also still very much unclear, whats it's BestPractices are, to get best results out of it. Until now: "Handle with care"
  4. Rollo62

    TListView OnItemClick problems

    Why, it looks OK to me. The index shows the entries from 0 ... nn, the Tag determines what item you have. If you filter, then the index might change, I think that is correct.
  5. @mitzi Thanks a lot. This could make some backed up WinXP VMs with old XP projects obsolete, if we can compile them in current Rx11 too. Lets utilize the free'd disk-space with some new, astonishing and modern FMX project's
  6. Rollo62

    TListView OnItemClick problems

    Simpler, yes, but the "Ex" receives also more information Especially the ItemObject is quite handy, to select the right sub-component in the TListItem, which you are interested in.
  7. Rollo62

    TListView OnItemClick problems

    In ancient past versions I had some issues from time to time, on various platforms, not sure what the root cause of them was. Anyway, I only can say that since I moved completely to ItemClickEx I had no more issues. Maybe everything is OK now, in the last Delphi versions.
  8. Rollo62

    TListView OnItemClick problems

    I rely on ItemClickEx only, for all purposes, this works best IMHO.
  9. Not sure if you really propose to use that ? The first seems to be a joke only, and will be probably offline very soon. The latter could be self-hosted, but requires node.js environment. When looking for the simplest possible solution, why not looking after PHP ? The sites can be very cheap, and even if you install WordPress (ab)using its REST API, it could not be much simpler. If you set up a REST API only, thats also quite simple with PHP too. What is your main goal (Price, Self-Hosting, 0-Setup, Stability, Safety, Longterm availability, Support, Memory footprint, Performance, ... ) ? Thats a little unclear to me, from your examples above.
  10. Thanks for the info, that looks very interesting. What is unclear to me, does it depend on Bass.dll ?
  11. Rollo62

    FinTech anyone?

    It has good and bad sides, as always.
  12. Rollo62

    FinTech anyone?

    Yes, that is what they WANT you believe .... I still prefer to have cash in the pocket. Digital currency, not bound to any real value, allows the FED's and covernments to set its value at will. This opens all doors to very ugly manipulations, control and value transfers, which is controlled from the government. They tell us the story of crime and corruption, so that we forget to give it a second thought. For example, the EU FED already has their hands already in sorts of directly supporting countries, governments, banks, etc. ... WAIT: What was the one and only task of the FED again ? Yes, to ensure price stability (NOTHING ELSE).
  13. Rollo62

    FinTech anyone?

    In Germany banks silently rised their fees and conditions over the past years. Only recently a judgement was mad, which allows bank customers to set back to their original conditions, when they opened the account. Unfortunately this goes back unly until 2018, but at least this may count up to 200-300 EUR, or maybe more, depending on the use case. I think it was an EU law that triggered the judgement. Yes, I also think the fee's are to high ( for a fully automated process ). The banks will get obsolete anyway in a few years, when all countries managed to launch "digital currenries", and the FED's take over. I think no one needs these greedy imtermediate money grabbers anymore soon ( but then we're dependent from FED's and completely transparent, which opens a whole bunch of other nasty issues too )
  14. Rollo62

    Open PDF File

    Interesting idea, you intend to open PDF in the default browser, right ? What prerequisites do you need for that, does all modern browser have PDF viewer already integrated ? I think Firefox can do that without any AddOn, but I'm not so sure about all the others ( Chrome, Edge ).
  15. This is a class, not an enum. I think the advantage of enum ist, that you can use a "speakable name" to identify a numeric value. If you enhance this class to store also the name of an enum, you get closer, but you still cannot simply use "AVariable := TMyDynamicEnumType.FancyEnumName; ", I think this is what bravesofts is asking for. Ok, you could use specific class properties as names for each enum, but still hard to dynamically enhance that.
  16. You mean to define a NEW type, like that type TFileTypeRange = ftPDF.. ftXLSX; I think you can do that in certain local scopes and places, but does this really make sense ? The real goal of enum's is, when they were shared and used to guarantee correct values between several units, like pre-defined constants.
  17. Rollo62

    Enumeration Type as Parameter

    Not sure if you're concern is the term Set or Enum in the type name. I usually try to use singular, plural nomenclature anyway ( with or without Set/Enum mostly ). TMySpecialValue = (svOne, svTwo, svThree, svFour, svFive); TMySpecialValues = set of TMySpecialValue; or TMySpecialValueSet = set of TMySpecialValue; That could be mixed e.g. with array or list, but in the code it will be directly clear usually.
  18. Rollo62

    FinTech anyone?

    Thanks for pointing to this topic, I have not heard that term either. After fastly checking, it seems to be somewhat in current discussions. From my experience, building common banking API standards was always massively hindered by the banks and institutes itself in the past. Did somebody or something stimulated the 3 brain cells of banking managers recently, towards 21st century
  19. @angusj Hi Angus, I'm still playing with your nice Image32 library. It behaves really well under all circumstances. What I'm trying to achieve is to open an SVG, and to have the ability to access certain elements and/or layers, to make them visible/invisible, including all their possible sub-elements in the tree. So my goal is to have a complex SVG, with certain layers, where I can control the rendering on-the-fly at runtime, like on/off changing color, etc.. The internal structures are somewhat hidden, and the SvgReader/SvgParser seems to decode sub-elements on demand from text of TAnsi record. I have tried to make the internal SvgTree structures accessible, but that doesn't help much to get easy control over the certain elements. The .text property seems to hold the whole node data as string text, with the text.AsUTF8String; it only returns a certain part, I assume only the <style> part. Since .text is a pointer, I'm not sure if the following text is usuable at all, but its looks that its containing the current node as string. The Id and other identifiers seems all to be hashed, so I cannot retrieve and find nodes easily in the tree. I can see that the internal structures are optimized for best rendering SVG, which it does very well ( even SVG that fails elsewhere ). My question is, if there is a simple way to access and control the SVG-tree on the fly, to control parts of that rendering process ?
  20. @angusj Thanks for the proposal, yes that works well in some tests. I had considered before that this might add too much additional redudancy, since the same data is copied or hashed maybe in other places still, and I have tried to restore the hashed data before. In reality, after a second thought, this additional data doesn't matter much. The reason is that only a few "Id's" will be used in the whole SVG, so thats irrelevant regarding redundancy.
  21. @angusj Thanks a lot. Yes the properties can be set in the Elements DrawData dynamically, works nicely. Unfortunately the missing link right now is how to identify the desired element(s) in the first place. Either a "FindById" function, or some kind of "Id" property in the TElement might help to identify and grab the desired element. Maybe I can find that in a future releases one day., I'm curious to see where this nice library might evolve into, I see a huge potential.
  22. Not sure how do you calculate that ? I just checked prices for a 2.5" SSD vs. HDD 1TB. Lets say 1TB SSD roughly 180 EUR vs. HDD roughly 65 EUR, which makes an SSD up-cost of 115 EUR. If I only assume the SSD vs. HDD brings minimum 5 min. / day of saved working (compile/loading/saving) time, then this summarize to approx. 5 min * 200 (active working) days / year = 1000 min / year = 16.7 hours / year of saved working time. Usually I would expect you have hourly working cost of >= 25 EUR at minimum, this would mean minimum working cost savings of 417 EUR / year vs. SSD cost-up of 115 EUR. This is only for one year, usually I would calculate the lifetime of >= 3 years, so the ratio gets better every year. It really doesn't make sense to save money on the wrong side.
  23. I am wondering why that is still the case, from my prediction SSD should have been breaking even much earlier. https://blocksandfiles.com/2021/01/25/wikibon-ssds-vs-hard-drives-wrights-law/ Accoding to this blog, we still have to wait some more time. On the other hand, I think the SSD/HDD pricing has many political components in it, so both parties try to keep prices high as long as possible, of course.
  24. @angusj Thanks for the answers, yes I have seen that it has included a fast reader/parser basically. So the best possible approach would be to re-load complete SVG's from string, while controlling visibility and change properties outside of the SvgReader, by a standard XML tree object. I will check into that direction then.
  25. I agree to that. Maybe the best way, to catch any of the remaining formats is, to seek the string reversely, from end to start. 1. Then take the last separator (first found when searching reversely) in the string, as preliminary decimal separator. 2. If there are more separators in the string, they could be safely ignored, they can only be thousands separators. 3. If separator 1.) is the only separator in the string, only then you might run into an unclear situation, as you explained above. 4. But you still could try to count the number of decimals after the last separator if there are <> 3, then you still could be very sure that it's NOT a thousands separator, but a decimal separator. 5. Even if you have >= 6 decimals, it should be a decimal separator, as I rarely expect having a million separator without a thousands separator. ( Still somebody could do nasty things like that ) 6. Only if there are exactly 3 decimals, then you better know your format source.
×