-
Content Count
2279 -
Joined
-
Last visited
-
Days Won
117
Everything posted by Anders Melander
-
Best components for creating windows service apps
Anders Melander replied to microtronx's topic in VCL
My experience too. -
So basically a suite of Delphi components that wraps some .NET controls which wraps the exact same Win32 controls that the corresponding VCL wraps...? Maybe you should move your post to the Third-Party group.
- 3 replies
-
- delphi.net .net
- .net runtime
- (and 12 more)
-
Drag and Drop Component Suite + Drop to Outlook not working
Anders Melander replied to microtronx's topic in VCL
Explorer (e.g. the desktop) supports FileContents/FileGroupDescriptor and many other application does as well. If your files are mostly virtual (i.e. they are generated from a database or the like) and are only saved to disk in order to be able to drag them, then FileContents/FileGroupDescriptor is actually the right choice. In that case make FileContents/FileGroupDescriptor your primary format and only write the data to disk if the drop target requests CF_HDROP/Filename. -
Drag and Drop Component Suite + Drop to Outlook not working
Anders Melander replied to microtronx's topic in VCL
I just realized that I've already released a newer version of the tracer. It's in the Demos folder: https://github.com/DelphiPraxis/The-Drag-and-Drop-Component-Suite-for-Delphi/tree/master/Demos/TargetAnalyzer It lacks the ability to save the trace though. Everything appears fine judging from the trace; The drop targets (I'm assuming you dragged across some other drop targets before you dropped on Outlook) queries for various formats during the drag and after the drop the target (Outlook) asks for the "Filename" and CF_HDROP formats. My guess was initially that there either something wrong with the particular file you're dragging which caused Outlook to reject it or that the data returned by the drop source was corrupted somehow (you could use the SourceAnalyzer demo to check the data). But then I found this: Drag & Drop files from 32bit winforms application to 64bit Outlook TLDR; It appears to be a known problem in Windows which apparently hasn't been fixed yet. According to one of the comments a possible solution is to use the FileContents and FileGroupDescriptor formats instead. See the VirtualFile, VirtualFileStream, SyncSource and AsyncSource with Filestreams demos for examples of how to do that. AFAIR you can add these formats to your existing drop source with an Adapter, but I can't remember how to do that. There's probably a demo about it. Here's another thread about the problem but here they don't seem to have realized it's a 32/64 bit issue: Issue with file drag/drop to Outlook in Windows 10 -
FWIW, the Drop Source Analyzer demo from The Drag and Drop Component Suite does pretty much the same as InsideClipboard. WRT you problem my guess is that GExperts uses some RTF codes or line delimiters that your target doesn't support. Try pasting via WordPad or a plain RichEdit control instead. They probably don't mess as much with the RTF as Word does.
-
Drag and Drop Component Suite + Drop to Outlook not working
Anders Melander replied to microtronx's topic in VCL
Try diagnosing the problem with the attached utility: Drag from the Drop Source pane and drop onto Outlook. You should be able to see what data Outlook asks for. If you compare the sequence when dropping on a 32-bit Outlook to that of a 64-bit, then maybe it becomes clear what's going on. DragDropTracer.zip -
Drag and Drop Component Suite + Drop to Outlook not working
Anders Melander replied to microtronx's topic in VCL
What data types (text, filenames, bitmap etc) are you dragging? Edit: Never mind. I see from the ticket that you're dragging files. -
I use the policy that all projects must be completely self-contained. Each project has a complete copy (source and installer) of the all the in-house and third party libraries used. The project search path points to the local copies. I always build from the source. dcu, exe and bpl files goes into local project folders. Everything is under version control. Getting a project setup on a new system is just a matter of fetching the project from version control, running any necessary 3rd party installers (usually just for design time functionality) and installing the bpls. Since the different projects tend to use the same libraries the two last steps are usually just done once. I don't care about what the installers do because I don't use their dcu-files or their search paths. The project itself contains it all. Never had problems with duplicate dcus (since I started doing it this way, that is). There's of course the problem that different projects might use different versions of design-time components, but that is a bit outside the scope of your question. WRT the VM solution I used it a while ago and it actually worked very well. I used Hyper-V with one VM per project. The only problem was that it got a bit tiresome to have to install the same tools in each and every VM whenever there was a change in the toolset.
-
True. I'm more worried about those that would use something like this just because it's a new smart way of doing stuff, regardless of whether it's a suitable pattern to use - and then I have to clean up after them. But then again, they pay me good money to do so 🙂
-
Oh, I thought you meant the "else after end" style but I guess you're shooting at "else...if" in general. Well yes, I guess a more flexible case would be nice, but I can also imagine the horrors people would create with it.
-
Pattern matching? You'll have to explain that one.
-
I see. Thanks. No need for a war; We all know there's only "One True Style" - and it's the one we use ourselves 🙂
-
Just out of curiosity, as I use this style myself, why do you "hate" it?
-
Line numbers in code editor
Anders Melander replied to Jacek Laskowski's topic in Delphi IDE and APIs
This is were the option is found in 10.2.3: -
Saving a large project takes soooo Loooonnnnggg..
Anders Melander replied to Ian Branch's topic in General Help
I'm not saying that the feature doesn't make sense. I'm saying that it doesn't make sense that these settings can be edited more than one place and that one of the places is the global Components, Install Packages dialog. After all if I still get confused about this after using Delphi for 24 years, then there's either something wrong with the UI or I'm just slow. Change the global dialog so it doesn't edit the project package list and instead make it clear that it's editing the default options and there's no confusion. Even better, and I remember this was discussed ad nauseam some twenty years ago, but if the package list had been opt-in instead of opt-out then much of these package juggling problems wouldn't exist. -
Saving a large project takes soooo Loooonnnnggg..
Anders Melander replied to Ian Branch's topic in General Help
I believe you, but that makes absolutely no sense from a usability perspective. You're saying that the Design packages list in project options is working on the same settings as the Design packages list in the Component, Install Packages dialog (which is where one used to install packages globally). [checking...] You're right. The dialog even says "Project options". Amazing! -
Saving a large project takes soooo Loooonnnnggg..
Anders Melander replied to Ian Branch's topic in General Help
That typically doesn't stick. For some reason Delphi enables the packages again sooner or later. It's been like that for as long as I can remember. -
Saving a large project takes soooo Loooonnnnggg..
Anders Melander replied to Ian Branch's topic in General Help
It so happens I have written a tutorial on that exact topic. Here it is: Disabling Live Bindings, The Tutorial Google "disable live bindings". [the end] -
Saving a large project takes soooo Loooonnnnggg..
Anders Melander replied to Ian Branch's topic in General Help
Sorry. Didn't read your description properly. I thought it was the save that was slow. I've encountered projects that took a long time closing but I can't remember what I did to solve it. I don't know if Live Bindings can affect close performance like they do open. One of my clients has a project where one of the datamodules has almost 200 datasets and thousands of persisted fields. Before I disabled Live Bindings there it took in the neighborhood of 15 minutes to just open this datamodule. Now, with Live Bindings disabled it takes less than a second. Anyway, you can easily get a call stack of the Delphi IDE with Process Explorer. Double click bds.exe, view threads, double click the thread with the highest CPU usage. That should give you (or us, if you post the call stack here) a clue about what it's doing. -
ToDo items should have a separate syntax color in the editor
Anders Melander replied to PeterPanettone's topic in Delphi IDE and APIs
Pfft! You did ask for opinions, did you not? For me the use case would be that I'm either looking for TODOs or I'm focused on something else. If I'm looking for TODOs then the existing functionality is just fine. If I'm focused on something else then I'll read the comments anyway and I don't need the extra distraction. -
ToDo items should have a separate syntax color in the editor
Anders Melander replied to PeterPanettone's topic in Delphi IDE and APIs
You have View, Tool Windows, To-do list. That's pretty visible... -
Saving a large project takes soooo Loooonnnnggg..
Anders Melander replied to Ian Branch's topic in General Help
My bet would be cloud storage: Try disabling iTunes, GDrive, OneDrive, DropBox etc. if you have them. For some reason these don't show up in Process Explorer (probably because they work on a too low level), but in my experience they can completely kill system performance. Every so often members of my family will ask for a new computer because it's gotten so slow they can't use it. I've tried, in vain, to explain to them that hardware doesn't get slower with age (my main workstation is actually the oldest in the household) but they persist. So I just uninstall or disable the various cloud storage services they use and just like that their system runs like new again. -
Delphi compiler need to be opensourced
Anders Melander replied to AlekXL's topic in RTL and Delphi Object Pascal
I'm pretty sure many of the countries on the receiving end of US' forced friendship has a different view on that. Look to me like the US is actually also guilty of most of the issues you listed. I don't mind the US looking after its own interests, just don't pretend it's doing anything but that. China is a complex issue. Sure it's bad in some areas, but it's slowly improving. It's a huge country and rapid change would cause the country to implode. -
Delphi compiler need to be opensourced
Anders Melander replied to AlekXL's topic in RTL and Delphi Object Pascal
Didn't you mean to capitalize "US"? And on that note I can't see how what China is trying to do is different from what the US is already doing to the rest of the world... -
Delphi compiler need to be opensourced
Anders Melander replied to AlekXL's topic in RTL and Delphi Object Pascal
It's not possible to downvote in JIRA.