Jump to content

corneliusdavid

Members
  • Content Count

    408
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by corneliusdavid

  1. corneliusdavid

    When execute, this error appears

    Really? Why?
  2. corneliusdavid

    Cloud Sync Options

    @Rollo62 By the way, this would've been more appropriate as a comment on my blog rather than a question here in this forum. My blog post doesn't have anything to do with Delphi.
  3. corneliusdavid

    Cloud Sync Options

    Don't confuse big-business cloud services with the specific functionality I was looking for: file synchronization. However, there are many options out there which I did not evaluate; I'll address the ones you asked about. I do use Google Drive a little, mainly for automatically saving photos from my Android phone and for working on shared Google Docs files. I've recently moved most of my stuff off of Google because I had my domain tied to G-Suite for business and they recently stopped offering that for free. Firebase is a platform for web and mobile application development and tied to Google, not a general-purpose file-sync service. I have an AWS account but setting up an S3 bucket and syncing to it is not straight-forward and there are complicated bandwidth and storage cost calculations--I wanted something simple. AWS is also geared more for business applications--which I've used but had not considered it for simple file-sync purposes. Is there a specific service I'm forgetting about that would've fit in with this? Or did you mention AWS just because it's known for cloud services? I also have an Azure account and use remote virtual machines and services but like AWS, it has complicated bandwidth and storage costs, and it's geared more for business--it's not a simple file-sync service. If I had an on-premises Windows network and used their hybrid cloud, this would work but if that were the case, I wouldn't need a cloud-sync service, I could simply use a network server's file share space. This is another service I think you mentioned simply because when people hear "cloud" they think of AWS and Azure but I was looking specifically for a cloud-based, file-sync service to replace OneDrive, which is Microsoft's product in this space and which works with Azure and Office 365--which is what I was moving away from. As for Apple, that's a little different story. While I have a few Apple devices for development and testing, I stay away from Apple products and services as much as possible on general principles: I don't like their high prices and restrictive user interfaces. This discussion could easily end up in arguments about Microsoft vs Apple, Android vs iPhone, etc. but I don't want to do that--I'm just saying this was my personal quest and Apple is never on the list of options for me unless there is no other option.
  4. corneliusdavid

    Best way to replace D11 distributed Indy with latest Git Indy?

    Ah! I see! That would be nice. I have a couple of legacy projects I support in Delphi XE that I have to keep in separate virtual machines because of conflicting components--DPM would solve that. (Oh wait--DPM is for XE2 and above...) Got it! I'll look to see how Indy can fit in with DPM.
  5. corneliusdavid

    Best way to replace D11 distributed Indy with latest Git Indy?

    Yes--quite a bit. In fact, I wrote AutoGetIt so I guess I do see a use case for automating the management of packages! But after installing Delphi and the packages, my installation needs are done. I don't completely get the need to be continually installing/uninstalling/upgrading packages all the time--or maybe that's not the real purpose of a package manager. I use a handful of components and there aren't that many changes that often--my time is spent working on projects, not package management so much. This seems like a lot of work to only occasionally save some time. I've worked a little with .NET and gone through some courses on Javascript so have been exposed to nuget and npm but only used them to follow explicit directions for getting an environment up to speed. My perspective is that there are far more libraries and packages in the .NET and JS world so the need there is obvious. Do you see DPM eventually being able to take a fresh Delphi install, run DPM with a list of libraries and in a few minutes, have a complete dev environment set up and ready to go? I think that's how I read it. I would like that ability and even explored that idea by installing Delphi with Chocolatey a few years ago, but there are so many different methods of installation, acknowledging copyrights, inserting license keys, etc. (like you point out in your blog), that I dropped it--the task took far more work than it was worth (to me). Now with Indy, having an automated install/update process could benefit a LOT of people right away--and with it being an open-source project, it's far easier to work with. I'd be happy to take this discussion off-line and look at DPM further with you.
  6. corneliusdavid

    Best way to replace D11 distributed Indy with latest Git Indy?

    I had heard of this but hadn't spent time reading about it because I didn't immediately see a use case. But now that you mention it in context with keeping Indy updated, I'm taking a second look--and will definitely look deeper.
  7. corneliusdavid

    Best way to replace D11 distributed Indy with latest Git Indy?

    Thanks @Remy Lebeauand @Vincent Parrettfor confirming the direction I'm taking. I'm going to work towards an automation tool of some sort for the Indy libraries.
  8. corneliusdavid

    Best way to replace D11 distributed Indy with latest Git Indy?

    Seems like this might be a ripe opportunity for an Automise script.
  9. corneliusdavid

    Best way to replace D11 distributed Indy with latest Git Indy?

    This is an old topic but I just ran across it while updating Delphi 11 with Indy from GitHub (will have a pull-request for D11 project files soon). While working through this, I decided to write up some instructions for replacing the default installed Indy in various versions of Delphi since I've needed to do this in several cases where I support legacy Delphi projects. I figured others might benefit from this--reading this discussion confirms that hunch. My assumption going into this (after having done it in a few older versions of Delphi) is that people simply remove all traces of the installed Indy that comes with Delphi, then install Indy from GitHub into a completely separate folder and compile/install it like they would any other third-party or open source library where the binaries are put out in the "public documents" folders (e.g. C:\Users\Public\Documents\Embarcadero\Studio\22.0). One of the suggestions here is to rename the Indy folder. Does that mean the Indy10 folder under Delphi's source? But that doesn't replace the compiled libraries installed in Delphi; the BPLs and DCUs are mixed in with other library files in the bin, bin64, lib\win32, lib\win64, and other platform folders of Delphi. So is the idea that when you compile the fresh source from GitHub, you'll direct the binaries to the Delphi bin and lib folders? If they're installed under C:\Program Files (x86)\Embarcadero\Studio\22.0, you'll have to run Delphi as administrator to update those protected files. Or do you install Delphi outside of the "C:\Program Files (x86)" folder? I'm really just trying to understand how others do it. Personally, I let Delphi get installed into the default "Program files (x86)" folder like other Windows applications. And libraries/packages that I build go to the "public documents" folder. So then, when I want to override the default installed Indy library with fresh source from GitHub, I have two choices: Delete all Indy files from Delphi's bin and lib folders, Add the paths for the new files at the top of the Library path so Delphi will find the new ones first. I've tried the second option and have had problems. Having multiple copies of the same BPLs and DCUs, even if they're properly ordered in the Library Path option, causes problems for me--there's always some other library that uses the wrong version of the binary and complains about it compiled with the wrong version or incompatible parameters or something. I found that deleting the files is best and works every time. Of course, this is rather tedious because there are debug and release versions of all the Id*.dcu and Indy*.dcu and Indy*.bpl and dclIndy*.bpl for each platform--that's a lot of files to make sure you've cleaned out (which is why I'm also considering writing a "clean" app to assist with this). So before I release these instructions, I just want to ask those who have replaced the default Indy with the one from GitHub: What is the process you use?
  10. corneliusdavid

    iPhoneOS15.X.sdk

    So is there a problem getting Xcode 13 re-installed? The article you pointed to is for situations where the new Xcode is not compatible with Delphi but as @Dave Nottagepointed out, it is--so you don't need to follow those directions. Instead, simply upgrade to the latest Xcode to get support for SDK 15. Unless there's some other reason why you won't/can't.
  11. corneliusdavid

    Dynamic class member names

    Oh yeah, that's right.
  12. corneliusdavid

    Dynamic class member names

    One more thing, I think you should look into the compiler options, make sure all debugging info is off, specifically Local Symbols and Symbol Reference Info. Also turn on Optimization and make sure RTTI is off. Then do a full build and check the binaries. If you've already done that, I'm out of ideas.
  13. corneliusdavid

    Dynamic class member names

    Well, without a Delphi pre-parser, you'll either have to do something like what Uwe suggested (UPX) or concoct your own obfuscated class/field names with comments explaining what they are (comments do not get compiled into the binaries). Unless someone else has a better idea.
  14. corneliusdavid

    Dynamic class member names

    Are you compiling with debug info on? Try compiling in Release mode and see how many identifiers are recognizable in the DLL.
  15. corneliusdavid

    Dynamic class member names

    Are you trying to obfuscate the class names or their values? Or both? You can use attributes to change the field names for the JSON structure. Read this blog by Flix Engineering, especially the section starting at "Custom attributes to the Rescue!" This allows you to keep your class intact but change the field names that show up in the generated JSON data.
  16. corneliusdavid

    MessageDlg, mtConfirmation Wrong After Delphi 10.4

    You know, I never asked whether this was VCL or FireMonkey--I just assumed VCL. I just added a FireMonkey app to my simple demo on GitHub and its Confirmation is still a question mark with both Delphi 10.4 and 11. I've attached a screenshot.
  17. corneliusdavid

    MessageDlg, mtConfirmation Wrong After Delphi 10.4

    Show us the code that calls this dialog box. Perhaps there's something else we're not understanding about what you're doing.
  18. corneliusdavid

    auto close or logout when no mouse activity

    Take a look at the CloseApplication.pas unit in an old library of mine. From the README in the main folder of the repository:
  19. corneliusdavid

    MessageDlg, mtConfirmation Wrong After Delphi 10.4

    It's not a Delphi thing, it's a Windows thing. I created a small test app that displays messages boxes and can be compiled in multiple versions of Delphi. I tried Delphi 11, 10.4, 10.1, XE2, and XE and on Windows 10 and 11, they all show the same "i" icon for confirmation. Then I pulled up an old virtual machine with Windows 8.1 and recompiled it in Delphi XE (the only version of Delphi I had on that machine) and it showed the good old question mark.
  20. corneliusdavid

    rubicon 4

    Check out the "Delphi Third-Party" section of this forum. Ann Lynnworth just posted an update to the Rubicon software with links to the product information and a link to their dedicated support forum--lots of users and answers there.
  21. corneliusdavid

    Looking for small (vector) drawing component/library

    This might be overkill but Skia4Delphi comes to mind as doing all that and more (I think).
  22. corneliusdavid

    announce: Rubicon Full Text Search v4.072 released

    I don't want to sound snarky but perhaps the title gives a clue, "full text search." Or you could follow the link in her post which takes you to an "overview" page with a full description of the product.
  23. corneliusdavid

    MacOS bug: TMainMenu subitems auto-close on click

    I removed Apple platforms from earlier versions of Delphi but I confirm this functionality on a quick D11 app. At first, I wasn't completely sure what the problem was but then I used the PAServer app on the Mac and in it's Edit menu, there's a "Copy Special" menu with sub-menu items and clicking on "Copy Special" does not close the sub-menu; a sub-menu with sub-items in the test app does close the menu as if there were an action attached to the sub-menu. I would agree that it's not consistent with typical Mac menu functionality.
  24. I wrote a quick test app and then drilled down into some folders using the app and compared with the Mac's native "Finder" to look at a set of virtual machines. The Mac's Finder recognized the "Virtual Machines" entry as a folder and its file contents were the same list of virtual machines I can see in VMWare Fusion, each entry is a simple VM name, and the details pane shows when it was created, the bundle size, etc. My test app, using just the TDirectory and TPath classes, showed "Virtual Machines.localized" as a folder name and allowed me to drill into that folder and then again into one of the ".vmwarevm" files, listing all the .vmx, .vmdk, .plist, and other files that make up a virtual machine package. Same with the Applications folder: Finder shows the application icons whereas my app shows a ".app" extension for each entry which is a sub-folder that opens up the contents of the app giving me Info.plist, PkgInfo, etc. My conclusion is that your app will need to recognize the file extension or file type and handle it differently--or like @Remy Lebeau says, use the FileManager API directly.
×