

timfrost
Members-
Content Count
212 -
Joined
-
Last visited
-
Days Won
3
Everything posted by timfrost
-
For FindWindow you need the name of the main window, not the application. Often this would begin with a T, but could be anything you have set it to. Look in the main form source for Tform1=class(Tform) and try 'Tform1' in the FindWindow call.
-
An encrypted password on the command line, decrypted by the second app, may not help security very much; if an attacker sees it in the command-line of the second process, they can send the same password later to the second process. Seeding the encryption and decryption with for example the current process ID makes this exploit harder, but not impossible. Everything suggested here has to be interpreted in the light of how secure you actually need all this to be, which we do not know.
-
@bverhue Is the support e-mail address on your website correct? I have twice sent you the results of incorrect SVG rendering in your VCL demo (the FMX version gets it right, but we do not use FMX). If you have received the messages, please respond. I can't be bothered to look further at your component if it cannot render our company logo, which is fine everywhere else, and is not going to be fixed.
-
Have you tried setting caHide in the Action parameter in your FormClose method?
-
Yes, I no longer remember when I applied the patches; for each compiler change I just update the compiler defines, build and test. Occasionally I may have had to tweak something.
-
I am using DDService successfully in Delphi 10.3; my patched files have a 2013 date and do all that is currently needed in our service applications. I look forward to checking them against your versions in due course. I have also used SVcom in the past but found DDService easier to implement.
-
Moving a file that is not yet flushed to disk
timfrost replied to Der schöne Günther's topic in Windows API
Take a look at SetFileInformationByHandle in MSDN. I have used it for a different purpose (moving a locked open file) but it seems to provide some other tricks which may (or may not) help you. -
ANN: StyleControls VCL v. 4.53 just released!
timfrost replied to Almediadev Support's topic in Delphi Third-Party
I agree with your view of Windows 10 default colours, but it is simple to get rid of the default white title bar, so that at least you can find the active window: Settings / Colours / Accent Colour -
It is not clear whether you actually need to keep them somewhere structured and ordered, like a stringlist. For a VTV, I would create a nodedata structure for each one containing either the string or a pointer to it, then just insert the node. If you do want an ordered list later, you can just walk the tree; if not, you are done when you have created the node structure and inserted it.
-
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.