Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 11/30/21 in all areas

  1. hsvandrew

    Hot Reload in Delphi?

    In my opinion hot reload is probably the most significant improvement to development since the Delphi IDE made VB look ancient. Developers are very expensive, and there are never enough hours in the day. For some reason developers spend all day making productivity tools for others, but seem to still work with spades instead of bulldozers. I can see this feature being worth at least $5000USD/year/developer which is a game changer. The fact the Delphi community doesn't see how important this is, well, it says a lot.
  2. Lars Fosdal

    Hot Reload in Delphi?

    It is not that we don't see its importance, we just don't have any faith in EMBT's ability to pull it off.
  3. Alexander Elagin

    SudokuHelper - Example for uncoupled design via interfaces

    Does not compile in 10.1 because of inline variables. What was the reason to use the cosmetic feature only available in the latest versions?
  4. SudokuHelper is an application that acts like an electronic Sudoku grid. It supports 9x9, 12x12, and 16x16 Sudokus, both in the classic and Gosu variant, where cells can be marked to only accept even numbers. The application neither creates Sudokus itself nor provides a solver for them; it is just a more convenient way to solve a Sudoku from a magazine or other external source than doing it on paper, using pencil and eraser. The application's main features are: Invalid cell values are marked in red. Candidate values can be added and removed from a cell. Setting a cell's value will automatically remove candidates no longer possible in other cells. All actions can be undone, the undo stack is only limited by available memory. Named marks can be set for the current undo stack state and one can later restore the stack to such a named mark. The complete Sudoku can be saved to file, including the undo stack, and later loaded again from such a file. The project can be found on GitHub: https://github.com/PeterBelow/SudokuHelper The code is a good example (IMO) of how to uncouple the UI from the "buisness" code using interfaces, in a kind of MVC design. It is free (public domain) without restrictions.
  5. The entry point is the begin...end block in the dpr file. You can instantiate whatever you want from there. The default is to create the mainform (and whatever "autocreate" forms/modules you have configured) in there. The first form to be created with Application.CreateForm becomes the main form. If you don't want a main form then just don't use Application.CreateForm. Oh, and btw, Application.Run is the message loop.
  6. If you want to build a VCL app then you need to fit into the framework. The main form is the first one created by a call to Application.CreateForm. Can be valle anything. Does not need to be Form1. You can create other forms before the main form if you want. The outer begin/end block in the dpr file is the effective entry point. You arent going to have immutability with VCL controls. If you want immutability, look elsewhere. Are you building a GUI app?
  7. David Heffernan

    Hot Reload in Delphi?

    I guess you already use logging to save time. One thing that I hanker after is a reversible debugger, where you can step backwards. Tricky to implement I am sure.
  8. Anders Melander

    Hot Reload in Delphi?

    I'm often working on applications where it can take 5-10 minutes to launch the application and navigate to the point of interest. Hot reload could save me hours every day.
  9. ConstantGardener

    Hot Reload in Delphi?

    On the other side: when you take the compiletimes of c++ into account the hotreload is of more interest in this ecosystem then in delphi.
  10. Dalija Prasnikar

    SudokuHelper - Example for uncoupled design via interfaces

    The critical section or any other kind of lock requires another object that needs to be constructed and maintained separately for no reason. There is no need for introducing locks of any kind here. This is not only working code, but also good code for such situation.
  11. Anders Melander

    SudokuHelper - Example for uncoupled design via interfaces

    Yes, I already acknowledged that. Having a Rudy moment?
  12. Dalija Prasnikar

    SudokuHelper - Example for uncoupled design via interfaces

    It is thread-safe. This is commonly used pattern for thread-safe lazy instantiation.
  13. I have submitted my application to Embarcadero for inclusion in GetIt
  14. CHackbart

    MacOS NSVisualEffectView implementation

    I managed to get it working. To do so I had to move the main view to the front and set the background color of the layer to transparent. This works also when UseGlobalMetal is enabled.
  15. I also use mutex (event in my case)+findwindow approach as the simplest solution but named pipes seem more advanced (didn't implemented them yet though) - Same system- or user-wide unique named object - Communication included for activating 1st instance with any data - More reliable than Findwindow - Suits for console apps, services - Likely x-platform (at least for Linux)
  16. Lachlan Gemmell

    Install Delphi Rad 10.3 on new workstation

    An installer for QuickReport 6 for 10.4 Sydney does exist however you cannot get it through the QuickReport website (you actually can't get any version through the QR website, their download system is broken). If you email QuickReport support however they will send you a link for a 10.4 installer.
  17. PierreC

    Unable to instantiate the library twice

    I just discovered a post that details the same problem. It seems that multiple loading is not supported by P4D or rather by the python library. Sorry for the inconvenience. https://github.com/pyscripter/python4delphi/issues/287
  18. futuron

    Delphi on Windows 11 on MacBook Pro 16 (2021)

    Hi Lars, not sure why you are having problems. I think I have the same setup and mine works like a charm. Compilation speed is totally absurd. My previous dev environment was on a late 2014 Macbook Pro (16GB mem, and additional Nvidia graphics). My new Laptop with an M1 Max processor (32GB mem) is a beast compared to my old laptop (and a beast to any other Windows laptop in our building - lol). Not really fair because having six years in-between, but compared to my home-game computer this this is fast! Real fast! Back to your problem, maybe telling about my setup, and the following order of getting to that setup helps: MacBook Pro 16 (M1 Max processor): macOS Monterey (version 12.0.1) installed Xcode 13 (v13.1) and inside of that I created a few signing certificates (apple development, and apple distribution certificate) Parallels Desktop Version 17.1.0 (51516) Inside Parallels: Installed "Windows 11 Pro Insider Preview" installed (thus ARM version) inside (Build 2250.rs_prerelease.211112-1650) I left everything to standard/automatic (such as CPU&Memory is set to "automatic" on my machine) graphics set to "best for external displays" as I typically run Windows/Delphi on a bit larger external display Inside Startup and Shutdown (options) I changed "on VM shutdown" to "close window" so I don't manually have to close the VM after I shut down windows Coming from VMWare I set several sharing and applications settings such that they mostly matched what I was used to Then booted Windows inside Parallels. Installed Delphi 11 Applied the November Patch Coped PAserver22.0.pkg from "C:\Program Files (x86)\Embarcadero\Studio\22.0\PAServer" to a shared folder inside Parallels so I can access it from my Mac Back to the Mac: Ran "PAserver22.0.pkg" to install PAserver Then ran the just installed PAserver-22.0 app (when I run PAserver it tells me that the version is 13.0.12.1) inside the window, pressed enter (thus not using a password), and then pressed "i" to retrieve the IP address needed in Delphi Back to Windows Started Delphi Inside Tools/Options: Connection profile manager, added host, called it MacOS, gave it the IP address found within PAserver. I didn't touch the port number or the password. The connection should then work properly Once the connection is OK then proceeded to SDK manager and installed SDK manager: added the macOS 64-bit (MacOSX 12.0) SDK, telling overwrite existing files SDK manager: also added macOS ARM 64-bit (MacOSX 12.0) SDK SDK manager: iOS device 64-bit (iPhoneOS 15.) SDK SDK's for android 32 and 64 bit along with windows 10 SDK were already installed with Delphi After that I installed all my regular components The above following-order 100% works, at least for me. So far I've compiled 32-bit windows, 64-bit windows, MacOS 64-bit, MacOS ARM!, and iOS apps without any problems. I can also package both Mac apps and iOS apps for Apple's stores! Probably today I'll try compiling for Android. And for who wonders... compilation speeds are totally nuts from my point of view. This thing is real fast. I will be saving time not having to wait as much for compiling, and packaging apps. Not even mentioning waiting for starting MS office apps (build for ARM) on the Mac-side, or running any other program on the Mac side. I ran Pixelmator the other day, did a "super ML resolution" on an image and I was floored on how fast that went. Sick! This was one of the best investments I've made for our company. Hope this helps
  19. Uwe Raabe

    Hot Reload in Delphi?

    The current debugger lets you simply drag the execution pointer to a line before or after the current position:
  20. Fr0sT.Brutal

    How do *you* test ?

    When writing some new class, I try to design structure first, write stub methods and then implement them one by one. Alas, implementation details frequently dictate structure change so I have to redesign it. I'm not a fan of TDD either when creating from the ground, I prefer to have something more or less ready to use. Of course, as soon as the state is compilable (I try to keep it such), I periodically compile. Then I test - run, create tests etc. When modifying code, I write and run tests ||-ly, sometimes it helps to understand what I want from a method.
  21. Rollo62

    Hot Reload in Delphi?

    Exactly, if the IDE would safe my valuable time, then the high cost for the IDE is getting less and less problematic. Unfortunately at the moment the IDE eats up my time, instead of releasing.
×