timfrost
Members-
Content Count
203 -
Joined
-
Last visited
-
Days Won
3
Everything posted by timfrost
-
Rules for changing cursor to HourGlass and back
timfrost replied to Mike Torrettinni's topic in Tips / Blogs / Tutorials / Videos
Yes. I have also been using a variant of this code for many years. -
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.
-
Recommendations on visual design
timfrost replied to Mike Torrettinni's topic in Tips / Blogs / Tutorials / Videos
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! -
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.
-
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]
-
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!
-
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).
-
How to reliably know if there is data selected in TVirtualStringTree
timfrost replied to Mike Torrettinni's topic in VCL
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. -
Restore to maximized: strip to the right missing.
timfrost replied to stijnsanders's topic in Delphi IDE and APIs
https://quality.embarcadero.com/browse/RSP-25564 -
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.
-
@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?
-
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.
-
Restore to maximized: strip to the right missing.
timfrost replied to stijnsanders's topic in Delphi IDE and APIs
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. -
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.
-
Disaster planning by archiving GetIt installers
timfrost replied to Tom F's topic in Delphi IDE and APIs
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? -
GExperts 1.3.13.77 Crashes RAD Studio 10.3.2 on Shutdown
timfrost replied to David Hoyle's topic in GExperts
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. -
@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.
-
@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.
-
Best data structure to maintain a small list of items that have changing values...
timfrost replied to Steve Maughan's topic in Algorithms, Data Structures and Class Design
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. -
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.
-
If Rad Server is not visible, maybe your Delphi license does not include it.
-
Saving a large project takes soooo Loooonnnnggg..
timfrost replied to Ian Branch's topic in General Help
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. -
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.
-
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.
-
Try a later VT version; I think 7.2.1 is the latest. I have noticed several speed enhancements mentioned in the changes/fixes.