Jump to content

timfrost

Members
  • Content Count

    203
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by timfrost

  1. Yes. I have also been using a variant of this code for many years.
  2. timfrost

    Reverse scrolling TEdt?

    While I was typing a message which essentially said, "why not a TMemo", a notification of the first answer here popped up, so I did not bother. And it turns out your real question was as much about organising large numbers of additions as about the component to view them. I have an application which uses a VirtualTreeView for this purpose. This allows you to optimise the loading and updating of the list completely separately from the viewing of it. The VTV handles all the scrolling for you, and you simply insert nodes. Inserting takes much the same time if you insert at the top. bottom, or middle, and the items just appear on the screen, which only has to redisplay the currently visible nodes, wherever you do the insertion. It can be made extremely fast and efficiemt. especially if loading/updating the data is done in a background thread and notified to your inserter code.
  3. timfrost

    Recommendations on visual design

    My advice would be to avoid the smart panel controls that were added to the VCL a few versions ago. They claim to make it so easy but they rob you of control. I think TMS may also have some like that but I don't use them. I prefer to design what the application needs, and to work with plain panels and tabbed controls, grids, etc., with careful use of the align property. I normally use TMS. I don't know of any shortcuts to make all happen automagically, but I am ready to be told of one by someone else here!
  4. timfrost

    Code formatter in CnPack

    I really don't want to start a 'style war'; it is just that I find it easier to see the structure if the 'if' and the 'else' are aligned and each begin/end block stands alone with its own indentations.
  5. timfrost

    Code formatter in CnPack

    I hate this style, but I am pretty sure you can achieve it using the GExperts formatter, the one I have always used. [If not answering the question helps you]
  6. timfrost

    Component installs

    I also have many components, all with source. I always disable the vendor's 'install into the IDE' option. For the few awkward ones who do not allow this, I have the IDE installed on a previous development machine, do the install there, and then copy over the source and project folders. And in most other cases I install the source into a 'components' area which is not my production build area - how do you manage to review every source change if the vendor simply overwrites their previous version, as so many do? After moving the component source into the production build folders (one for each component) I run a FinalBuilder project which builds each component with settings (defined in the FB project) over which I have control. The FB project also installs each component in the IDE by setting the IDE registry keys for it, and I have a program of my own which sets the library and browsing paths for the IDE exactly as I want them to be. All the BPLs and DCPs are each in a single folder. I do much the same as you describe for the DCU and resource files for each project, although for some of the smaller components I do not bother with a separate DCU folder. FinalBuilder is the big timesaver for all this - once set up, you can click once and know everthing will turn out correctly!
  7. timfrost

    Different core file dates in 10.3.2

    There was a 'b' version of the ISO a short while after it first became available. Perhaps this had only a few files changed, and these are now also in the alternate installer (which I have nerer used).
  8. timfrost

    How to reliably know if there is data selected in TVirtualStringTree

    It sounds as if in your VT1mousedown event you should first call vt1.GetHitTestInfoAt to find out whether the mouse has been clicked on a node or not. Once you have the node, it is up to you to work out what you have put in it and whether it is a selected/focused node, and what to do with it if so. Presumably you always ensure that there is a node type or tag in the nodedata.
  9. timfrost

    Restore to maximized: strip to the right missing.

    https://quality.embarcadero.com/browse/RSP-25564
  10. timfrost

    Time Zone Library

    We have used this for many years and found it very robust and comprehensive. For some periods in the past it has not always kept up with every IANA update, but currently it includes the latest one. You can always update the embedded data yourself using the provided compiler, if you subscribe to the TZDB mailing list to get notified of updates. Our software only needs to be aware of future zone and DST changes, not those in the past, so I modified the compiler to omit all the information about which day in 1928 the DST rules were changed in Alaska or Zanzibar, and other such fascinating facts. It's very simple to use if you have a need for the TZ information that IANA maintains.
  11. timfrost

    Shortcut clashes

    @Stefan Glienke What version of MMX are you using? I have 14.0.4.2274. Could it be that the default MMX shortcut has recently changed?
  12. timfrost

    Shortcut clashes

    The fact that the shortcut for Debug ... Entire CPU does not work for me has annoyed me for many years, but never quite enough to investigate it. But I am not sure that your analysis is correct. This shortcut is Control-Alt-C, and that in MMX for Copy Entity is Control-Alt-NumPlus. I have never customised any of the MMX shortcuts. The shortcut-owner display in GExperts shows Control-Alt-C as Debug CPU, so I still have no idea what has stolen it; but MMX does not seem to be the culprit here. Edit: I see that Control-Alt-C does work to switch focus to the full CPU window, but only if this window is already open. Another extraordinary EMB feature. If for example I click in the stack window, then this shortcut switches focus to the CPU tab. But it does nothing if I am in the editor window.
  13. timfrost

    Restore to maximized: strip to the right missing.

    When it happens, on my 4k monitor, I find there is a tiny slice of the red X which still works to close the IDE, if you hover the mouse at the edge. Going out of full screen, then back, restores the missing strip.
  14. timfrost

    Passing back a string from an external program

    To answer your question, yes, I have done exactly this. But in my case program 1 was guaranteed to be a singleton on the machine, so I could just create an empty registry key before invoking program 2 and have program 2 place the result there. If you have control over the number of instances of your program 1 you might be able to adapt this solution. It has the advantages of extreme simplicity and needing no extra tools or special functions.
  15. The problem described here is the basic reason (of course there are others) why I have never considered downloading from Getit any tool or component we will use in a production environment. We have source for all the components we use and for every one the BPL/DCP is built by a Finalbuilder project under our control. And if you download and install something from Getit (when it comes back up) how do you check precisely what has changed since you last downloaded it? Where has your older version gone, for comparison?
  16. timfrost

    GExperts 1.3.13.77 Crashes RAD Studio 10.3.2 on Shutdown

    1.3.13.77 doesn't crash on IDE 10.3.2 exit here. This is consistent with an incompatibility with some other package that I do not have, but David Hoyle does. I have Documentation Insight, MMX Code Explorer and IDE Fix Pack 6.4.2 installed.
  17. timfrost

    Delphi 10.3 Update 2 available

    @Ian Branch Please read it again. It says name without, value with; and in the picture both without. I referred to the value. But it is immaterial because neither had any effect for me.
  18. timfrost

    Delphi 10.3 Update 2 available

    @Achim Kalwa Your IDEFixPack.DisabledPatches suggestion did not work for me in 10.3.2. The error message still appears. Your post says the value should be entered with quotes, but the screen shot shows it without; however neither option was effective. I also tried putting the value in the system environment and this was also ineffective, with or without double quotes.
  19. For only 200 values you would have to be running your algorithm many times a second in order to detect any differences. I would simply put all the values in an indexed array and every time you update a value, simply check it against the previous lowest value. Then save its index and update the lowest value if necessary. Whether this is practical or not depends on how many threads are simultaneously updating the values, how long the algorithm takes to run, and what the intervals are between iterations of the algorithm. I have no idea whether this is the fastest way to do it, but it is simple, and for 200 items, as I said, I would not care if it took a few microseconds longer. If microseconds are really important to you, then it is essential to test and measure, not guess; so you must ignore my advice.
  20. timfrost

    Laufleistung

    I have seen "kilometrage" used in UK English, and kilométrage in French. I would vote for it if you organized a competition, although it is ugly and not in wide use. If you are using the word as a column heading, you need something short. But in a descriptive sentence I would prefer a phrase like, "lifetime rolling kilometres" or "total kilometric distance". Googling lifetime kilometres only turns up FitBit links.
  21. timfrost

    No TEMSProvider on my component pallet

    If Rad Server is not visible, maybe your Delphi license does not include it.
  22. timfrost

    Saving a large project takes soooo Loooonnnnggg..

    Sysinternals tools may give you a clue as to what is happening. Process Monitor filtered on the Delphi process will show you if the active thread is busy accessing the file system or the registry, and Process Explorer will display the active threads of the process and can snapshot the stack of each one - it can show much more information about the process than Task Manager.
  23. timfrost

    MMX Beta 14.1 available

    Can I please say that I find the MMX user interface entirely satisfactory in daily use. This thread has reminded my about some useful features which I had forgotten about, despite many years of using the product. I would not want them removed, and since the icons take little space I would not want them hidden. There are perhaps minor features that I would improve, but they do not cause me any trouble and I appreciate that supporting the product is done as Uwe finds time to allocate to it.
  24. timfrost

    DIBControls by Droopy Eyes Software

    I have a copy of DIBControls.zip downloaded in November 2007, but I do not recall ever having used it. And an e-mail from Peter Morris in 2002 announcing the new Droopy Eyes website. Another Delphi component that has fallen by the wayside, perhaps. Though there are other disappeared items from even earlier that are still in use here.
  25. timfrost

    Slow PgUp in TVirtualStringTree

    Try a later VT version; I think 7.2.1 is the latest. I have noticed several speed enhancements mentioned in the changes/fixes.
×