Jump to content

Mike Torrettinni

Members
  • Content Count

    223
  • Joined

  • Last visited

Community Reputation

16 Good

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Mike Torrettinni

    Using Delphi in Virtual machine for a month

    Yes, 3 physical monitors - I have these options when in Full screen mode: Same performance in any layout.
  2. Mike Torrettinni

    Using Delphi in Virtual machine for a month

    I did, and it seems a bit smoother experience with Windows overall ( I assume due to RDP Experience setting: Detect connection quality automatically), but no difference in Delphi experience. I didn't know you can actually RDP to local VM, quite interesting!
  3. Mike Torrettinni

    Using Delphi in Virtual machine for a month

    I can extend my VM to 3 monitors and no change in performance, still annoying little delays, but no worse than on 1 monitor.
  4. Mike Torrettinni

    Using Delphi in Virtual machine for a month

    Thank you, great tips! Will try some and see how it goes. Oh, yes, thank you for pointing it out: I don't use any AV in VM, and I excluded the VM file disk folder from anti malware sw and Defender monitoring. Same for Shared folders, excluded from monitoring.
  5. Maybe this will help someone deciding on trying to use Delphi in VM: I used Delphi 10.2.3 in VMware for a month and I just reinstalled it back on my local machine, it just didn't really work for me in VM. So, specification: Desktop: Intel I7 4790K (4c/8t), 32 GB Ram and all SSDs; Windows 10. VMWare Workstation Pro 15.1 installed on local PC - I researched quite a lot on how to improve experience with VM Settings: Memory: 12GB Processors: 4 (processors: 2, cores per processor: 2) VM file is on separate SSD. Fresh Windows 10 installed in VM (+all updates + all latest drivers) To make it run a fast as possible (or to limit resources used) I disabled all non-essential services, cleaned up startup programs, no antivirus or antimalware installed. Very few other tools, just 7z, WinRar... Delphi 10.2.3 + IDEFixPack + MMX + GExperts + CNPack Disabled Start page + disabled Live binding. One of the reasons why I tried Delphi in VM is to have simple backup and grab-and-go Delphi environment. So, at first it seemed to work well, full build time was a bit slower, but not too annoying - 50% longer than compile time on local. A bit slower IDE, slower switching between Form and code. For the testing of concept it was acceptable and luckily at that time I didn't have any real development time scheduled, just some minor bug fixes. But as soon as I started really working with it, all these little things became very annoying, in a matter of few hours: - delays in mouse right-click in code to use Toggle Breakpoints or Refactor (rename variable) - delay on selecting Form controls and Object inspector to populate properties and Structure view - opening menus - even ctrl+home/end on large unit (40K loc ) was delayed - and other little delays here and there The delay I'm talking about is very minor, probably less or close to 1s, but when you use IDE a lot these delays become very apparent and annoying. For me this was too much after a few hours of real work. To summarize, I think I optimized VM as much as I could to run as fast as possible; the computer is still powerful enough even though is not brand new high-end computer; I don't have huge projects, but they do have some 100Ks loc each. If I would install all the rest of the tools I use in my daily development environment and run them as I do on local computer (memory regularly gets used 20GB+) it would slow down the whole VM experience even more. I doubt that VirtualBox or any server virtualization (Hyper-V?) would improve the experience. Maybe it's my patience (or the lack of it) that got tested really fast, but VM just isn't working for me. If anybody has different experience, please let me know if you have any advice on how to make the whole experience better - smoother IDE, like on local installation where runs really fast (very acceptable).
  6. Mike Torrettinni

    Refer to Form Control without using the Form unit?

    I know this is one option, but then it's not all in one Translator unit. But good suggestion, thanks!
  7. Mike Torrettinni

    Refer to Form Control without using the Form unit?

    No, just forms and only a few customized controls - where translation is customized. I don't have many situations like these. The ones where I do, I specifically control the creation of such forms and also translation at that point.
  8. Mike Torrettinni

    How to reliably know if there is data selected in TVirtualStringTree

    These are various checks throughout the methods and they go back many years, when I might have called the method without Sender, but you are right is not valid anymore. Thanks!
  9. Mike Torrettinni

    How to reliably know if there is data selected in TVirtualStringTree

    Thanks, I do have this, not at the beginning, but later on in some cases for clicked Column #. Will try to put it as the first thing.
  10. I hope someone can help me clear up this part of my refactoring process: I have many VSTs (TVirtualStringTree) and many handlers OnClick, OnMouseup, OnPaintText and others. Usually shows detail info or executes actions based on selected line in this VST. One of the areas I want to refactor/clean up is the beginning of these methods, where I make sure there is actual selected data in VST, and I have many different implementations that are any one of these statements or combination of them. The purpose of all these conditions is to stop processing methods if there is no data selected - empty VST is clicked on; uses clicks on edge margins which don't actually select line;.. or to prevent any anomalies where line data is not there: // in some methods I only have this if TVirtualStringTree(Sender).FocusedNode = nil then Exit; // and in others I have any of these or combination of them: TVirtualStringTree(Sender).FocusedNode = nil not TVirtualStringTree(Sender).Visible TVirtualStringTree(Sender).GetFirst <> nil Sender = nil TVirtualStringTree(Sender) = nil if any of these are True = Exit; And after this I usually have this: Data := TVirtualStringTree(Sender).GetNodeData(TVirtualStringTree(Sender).FocusedNode); if Data = nil then Exit; in some cases I have this: Node := TBaseVirtualTree(Sender).GetFirstSelected; if Node = nil then Exit; Is there a better, simpler way than having all these conditions? Thank you!
  11. Mike Torrettinni

    Generic Command Line Parser for Delphi 10.3.x

    I have my own parsing solution, works exactly as I need it to, but it's not as robust as I would like it to be. I will try this one as soon as I have some time!
  12. Mike Torrettinni

    Refer to Form Control without using the Form unit?

    Good option, 'Self.QualifiedClassName' shows 'Unit1.TForm1' - should be unique.
  13. Mike Torrettinni

    Refer to Form Control without using the Form unit?

    Thanks @Lars Fosdal, interesting solution. That works because you only deal with a few of different ClassNames, right? If you needed 'navigation' through multiple Forms, that have same ClassName, this would be more tricky... or not, you could then go by another Form identificator... OK.
  14. Mike Torrettinni

    MMX 15 (Beta) Available

    Great, thanks for this tip! I don't know how to use all features, yet, but this was annoying to always open up when I don't need it.
  15. Mike Torrettinni

    Refer to Form Control without using the Form unit?

    OK, good to know not to force it for every situation.
×