Jump to content

Dalija Prasnikar

Members
  • Content Count

    68
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by Dalija Prasnikar

  1. Dalija Prasnikar

    Solution(s) for coder with quite poor eyesight

    There is plenty... HP, Dell, ViewSonic... it should not be hard to find suitable one. I am using 1920x1080 at 24" and I have seen 27" 2K monitor simulating HD resolution using 100% font sizes. I could read it across the room.
  2. Dalija Prasnikar

    Solution(s) for coder with quite poor eyesight

    27" monitor with 1920x... resolution and 100% font size might be good enough. There is quite a difference between 24" and 27".
  3. Dalija Prasnikar

    10.3.1 has been released

    Something is not right with your installation. Mine shows 10.3 update 1
  4. Dalija Prasnikar

    10.3.1 has been released

    IDE no longer flickers when you compile/build 😃 Probably the most important fixes and improvements are in iOS platform - including fix for compiling/linking 3rd party libraries against iOS 12 SDK. And then there is a bunch of bug fixes in other areas. So plenty of improvements, just not big ones. Or depends how you look at it, if your code was affected, then even single small fix can be great improvement.
  5. Dalija Prasnikar

    Pitfalls of Anonymous methods and capture

    or MCVE Minimal, Complete, and Verifiable Example
  6. Dalija Prasnikar

    Pitfalls of Anonymous methods and capture

    To be honest, knowing the type of Handler.OnHandle is crucial for understanding the issue. The other implementation details don't matter as much. Broker.AddHandler(Handler.OnHandle); And usually I don't go around and download code examples, just to get to the bottom of some problem. Only under special circumstances - mostly from bugs reported in QP, when having complete test project is crucial for reproducing the issue. The only reason, why I did go and download this example is because I know you. So whether you like it or not, David does have a point.
  7. Dalija Prasnikar

    First!

    Really nice to see you here.
  8. Dalija Prasnikar

    Pitfalls of Anonymous methods and capture

    You are on right track. What happens is something like this: procedure TTest.ConfigLoop; var Handler: THandlerClass; hType: THandlers; hRef: TOnHandle; begin Writeln; Writeln('--- ConfigLoop'); Broker.Clear; for hType in [foo, bar] do begin case hType of foo: Handler := TFoo.Create; bar: Handler := TBar.Create; // wtf: ; end; hRef := Handler.OnHandle; // Capture does no discern between the foo instance and the bar instance Broker.AddHandler(hRef); end; end; and then this bridging assignment from plain method to anonymous method is expanded to hRef := procedure begin Handler.OnHandle(); end; Where before mentioned rules about capturing references (variables) and not values apply.
  9. Dalija Prasnikar

    FYI: Graph showing iOS crashes with recent Delphi versions

    I understand how you feel. Sometimes it is going two steps forward three steps backward. One of the problems with cross-platform development is that not all code is the same. And different principles apply. OS architectures are different and what you can do on one platform, you cannot do on another. I am talking generally, regardless of whether offending code is yours or Embarcadero's. Also mobile platforms change frequently and are also changing rules and behaviors. What worked today, may break tomorrow. This is not related just to Delphi applications but all. I am using Xcode - Swift and Android Studio - Java for mobile development and situation is not much different. The only difference, is that when some policy or behavior changes, you immediately have appropriate tools to implement change. But your code will be broken left and right. You cannot take year old code and make simple recompile - in Swift everything is in a state of flux - language, frameworks, so every time you touch it, it is almost a rewrite. I don't even know what is the proper method for sorting list - its name changed dozen times - from sort to sorted to sort again... what is current one I have no idea - and that is just the simplest example. On Android, Java is the same, but frameworks are changing every week. If you have to support newer versions of OS, you have to use newer frameworks, that also change all the time, are buggy as hell... I know Delphi could and should be better. But, I also painfully know that grass is not greener on the other side. What we can do, is relentlessly report issues to Embarcadero. Not all will be fixed and not all will be fixed as fast as we would like, but Embarcadero is fixing them. Especially, more critical ones.
  10. Dalija Prasnikar

    FYI: Graph showing iOS crashes with recent Delphi versions

    Quick search through Quality Portal didn't reveal any reported issue similar to yours. Can you please file QP report.
  11. Dalija Prasnikar

    FYI: Graph showing iOS crashes with recent Delphi versions

    On Windows, yes. On other platforms not so much. Android and especially iOS are just sitting and waiting for opportunity to nuke your app.
  12. Dalija Prasnikar

    FYI: Graph showing iOS crashes with recent Delphi versions

    Not necessarily compiler, but RTL/FMX or other frameworks. Yes, there were some changes in compiler that may have influence, but such errors tend to have impact across all platforms. Now, it would be interesting to figure out what exactly is the problem.
  13. Dalija Prasnikar

    FYI: Graph showing iOS crashes with recent Delphi versions

    Do you have any information about iOS versions used? At some point (around version 11) iOS became more sensitive to touching UI from background threads. I had small test apps built with Tokyo and Rio that were happily running on iOS 9.x and were instantly killed on iOS 11.x.
  14. Dalija Prasnikar

    Rio quality disappoint

    1. Because they have full control and can do with it what suits their needs the best 2. Dogfooding 3. They also have IDE for Mac - Fire (and that was first one they wrote - AFAIK when they started that project there was no VS for Mac) - Water is just Windows variant to prove cross-platform viability of their approach 4. Here we were talking about VSCode that fits nicely for some things (not VS), but still is resource hungry Electron app. I don't know about Water, but Fire is native Mac application - which means fast. 5. When it comes to VS itself and VS being so nice... I don't know. Last time I used it it was dog slow comparing to Delphi IDE (around XE time). 6. Having plugins for various IDEs can be nice and certainly is good place to start when you are just starting - but nothing beats fully dedicated IDE under your control.
  15. Dalija Prasnikar

    Version Control System

    I would suggest Git or Mercurial. Mercurial is a bit easier to learn and most of the time prevents you from shooting yourself in the foot. TortoiseHg works great and fast. Git is more powerful, but has steeper learning curve And I still have to find Windows Git client that actually works. On Mac SourceTree works fine, on Windows not so much - slow beyond description.
  16. Dalija Prasnikar

    Should my record be a class instead?

    Using classes just for the sake of using classes can be nice exercise in futility. I have to admit that I haven't paid close attention to this post and I have been reading it rather superficially, so it is possible that I missed some piece. But from your original post I don't see any compelling reason why you should switch to classes. Especially if you don't feel comfortable with them and don't really see the point. Main advantage of classes over records is polymorphism. If you don't have the use case for it, then records will do. Also, one small note - you are holding your records in dynamic array, and those are allocated on the heap, not on stack. Only the few bytes of your global record holder would sit on stack. And overall, class based solution would use more memory than record based one. That does not mean that you should not learn more about the classes, but trying to learn on wrong use case will make things harder not easier. You should learn about classes with examples where they really show their advantage and then you will be able to understand them better.
  17. Dalija Prasnikar

    Rio quality disappoint

    VSCode is great tool. It has its downsides (being Electron app wasteful with resources) but I guess you can't have it all. It is far from being full fledged IDE for all purposes (and all languages), but it fits nicely into developer toolbox. As far as Delphi is concerned, it can fill some gaps in Delphi IDE functionality, and sometimes it comes as a rescue when Delphi bugs itself out. With OmniPascal plugin it will get you a long way in cases where code completion stops working in Delphi and there is a lot of code that is not RAD and does not include working with forms. I also like it for editing frame and form files, when I had to change something without Delphi IDE interfering. But the feature I like the most is its search capability with automatic preview of selected file so you can easily get more code context - no mouse clicks, just keyboard. I also sometimes use it to edit Java code (and xml layouts), when Android Studio has a bad day - which is quite often. Even more often I use it to write Swift code, because Xcode can be a huge PITA, too. Not to mention it has markdown preview - really handy when writing documentation.
  18. Dalija Prasnikar

    How to create common CreateForm method?

    Some people will just copy paste anything smile or no smile 😉
  19. Dalija Prasnikar

    How to create common CreateForm method?

    Just in case... What case? If construction of the form fails you will never hit Assert line anyway.
  20. Dalija Prasnikar

    Delphi, be better!

    Pulling back features is never good, but releasing features that are not ready is way worse. Especially ones that are not localized and can have huge overall impact on product if not done right. This things happen all the time, everywhere. Google postpones features, Apple postpones features, MS postpones features. People are not losing their jobs for making hard decisions when bad things happen beyond their control. Sometimes you complete 95% work on some feature only to realize that the remaining 5% is not actually 5% and it will take way more time to finish it properly. Of course, if there is constant inability to finish something on time, then someone has to take responsibility. Question is why is that happening? Is it because people working on things are not competent enough, or there is just not enough people working on things.
  21. Dalija Prasnikar

    Single Instance of Dephi IDE?

    File feature request at Quality Portal an post the link back here. I know many that would find such switch handy.
  22. Dalija Prasnikar

    Request for advice: FireMonkey and Frames

    Creating at run-time is pretty straightforward. You need Owner and Parent, and sometimes setting Align property. You can use any FMX control as those - or at least I have been able to use them without a problem. FFrame := TMyFrameClass.Create(AParent); FFrame.Parent := AParent; FFrame.Align := ... And that is it.
  23. Dalija Prasnikar

    What shows when opening a project?

    Eh... I completely forgot you can turn that off
  24. Dalija Prasnikar

    What shows when opening a project?

    .dsk file in your project root folder. It will open project in state you had when you closed it. If you had code view open, you will get code view, if you had design view you will get that. It also remembers last settings for each form. And first time it will show design view (at least that is the case for the last few versions).
  25. Is Delphi Rio broken? NO.... Why does my Android application, compiled with Delphi Rio, no longer work?
×