Jump to content

Alexander Elagin

Members
  • Content Count

    198
  • Joined

  • Last visited

  • Days Won

    6

Posts posted by Alexander Elagin


  1. 28 minutes ago, AlekXL said:

    [0.  take newpascal and merge with latest trunk]

    1. merge (3-way) with attributes patch, it's most recent

    2. merge either with [blaise/closures] or Kevroletin patch

    3. figure out about inline vars and type inference

    I wonder if Sternas Stefanos (CodeTyphon, you know) considered this option. As far as I can see, his CT bundle uses FPC trunk.


  2. 2 hours ago, AlekXL said:

    Seriously, we need to fork fpc..

    NewPascal tried to be such a fork but also died because (I guess) Maciej could not do all by himself and there was nobody else to work on the code. Do you think that another fork could be more successful? Yes I clearly that the FPC compiler development came to a roadblock due to aiming strange goals (I like "More OS/2 support" and "New compiler targets: Support for the i8086-win16 (16-bit Windows) target" as the future plans :classic_mellow:) and THAT is a real problem . Otherwise we could already have a real cross-platform VCL (LCL) combined with a pretty good compiler, while now I just cannot use advanced Delphi libraries (like Grijjy) with FPC and have to use Delphi Linux compiler with its debugging nightmare and no desktop support. And I am honestly afraid that if said Linux desktop is ever implemented it may be FMX-based which means rewriting all UI instead of going the LCL way (one common VCL-compatible layer supported by different widget sets - winapi, gtk, etc).


  3. I think it would be easier to write a brand new frontend parser from scratch and feed its output to LLVM or whatever else backend code generator because I understand what it means to have to deal with huge amounts of undocumented legacy code. Unfortunately, I highly doubt there are enough developers interested in writing such parser, let alone the absence of the formal grammar definition. And given the strange state of the FPC development where it seems that the core developers are not interested in implementing new features (closures / attributes / etc, even when there are already provided implementations for these features collecting dust in the bugtracker for years) I feel there is nobody to write another Pascal compiler. The RemObjects compiler genius Carlo Kok has already developed Oxygene and I highly doubt anybody could persuade him to develop a free fully Delphi-compatible compiler in his spare time.


  4. 2 hours ago, Silver Black said:

    Unfortunately it doesn't happen always, it's erratic.

    Is it just me?

    No. I have also noted that in 10.3 toolbars sometimes start jumping from line to line even without layout switching, just by moving mouse somethere. But this is not reproducable. As I don't use 10.3 as a primary IDE, I can only say that 10.1 does not suffer from this problem (and other bugs introduced in later releases).

    • Like 1

  5. Unfortunately, I do not see any way to stop this endless IDE revamping trend (save bribing someone from the Embarcadero management :classic_biggrin: ). I wish I could use the 10.3 compilers with the plain old XE IDE... And now "the dogs (we, the users) bark, but the caravan goes on". BTW, the DevExpress Skins library has been around longer than VCL styles but I don't remember many problems with using it or switching skins on or off, unlike the Delphi IDE which seems to be heavily rewritten to adopt theming and introducing endless bugs in the process.


  6. 1 hour ago, Lars Fosdal said:

    The new IDE skinning is a disaster.

    And they even removed the checkbox to disable theming from the IDE settings dialog in 10.3.1. Instead of fixing the obvious problems with said dialog. There still is a registry setting (probably left unnoticed 😉 ) which disables theming but they may as well remove it in the future releases leaving us with an unusable IDE... I wish all resources spent on this theming nightmare since XE2 (? don't remember when it all began) were allocated to real bug fixing.

    • Like 5

  7. I prefer Subversion as it is very easy to use (with TortoiseSVN) and easy to manage in closed environment with its centralized repository storage. Git has its nice features but they are not for everyone, and its distributed nature complicates things. Anyway, here is a very good tutorial how to install a Git server to play with, maybe it can help to make the right choice. TortoiseGIT client is also available.

    • Thanks 1

  8. Finally the Quality Central issues statuses begin to update. And what do you think?

    RSP-21645 (Editor tabs do not show icons) - closed. Resolution: Works As Expected 🙁 . Really, that is how they at Embarcadero see it.

    RSP-21636 (Active editor tab is not highlighted when IDE theming is disabled) - closed. Resolution: Won't Fix.

    Given this stupid attitude (and obvious intentions to further force the themed IDE despite all its glitches) I highly doubt that I'll renew my subscription when it expires this March. I thank David Millington for personally contacting me but I do not want to further waste my hard earned money for another round of cosmetic IDE changes instead of bug fixing.

    • Like 2
    • Haha 1
    • Sad 2

  9. 9 hours ago, Dalija Prasnikar said:

    Just in case... What case? 

    If construction of the form fails you will never hit Assert line anyway.

    Have you seen the smile in my comment? I'd never use such design myself (for modal forms I use class functions, non-modal always have their own local variables). This was just an in-situ snippet to show how to use TFormClass and polymorphism in action based on the originally posted code.


  10. Maybe something like this?

    procedure AccessForm(var aForm: TForm; aClass: TFormClass; aModal: Boolean);
    begin
      if not Assigned(aForm) then aForm := aClass.Create(Application);
      Assert(Assigned(aForm)); // just in case :-)
      if aModal then aForm.ShowModal else aForm.Show;
    end;
    .....
    AccessForm(Form2, TForm2, True);
    ....

     


  11. Maybe this can help (not tested):

    Copy Winapi.Windows.pas to the project source directory and comment out lines 8498-8501 and 38322 (or wherever GetProductInfo  is defined/declared), then recompile the project.

    Probably just adding 'delayed' could help, too, like this:

    function GetProductInfo; external kernel32 name 'GetProductInfo' delayed;

    Try it, at least a negative result could be useful. I could not locate any other file in the source directory where GetProductInfo is called.


  12. 3 hours ago, FPiette said:

    I'm using Delphi since version 1, every single day of the year. And there are still tricks that I don't know!

    There is a setting which controls the docking behaviour in Options - Environment Options menu, named "Docking" 🙂  I usually switch off Auto Drag Docking - in this configuration one has to explicitly hold Control key down while dragging a window to make it dockable, otherwise the window is just moved around remaining floating.

    • Thanks 2

  13. What if those fields (TField instances) belong to some already destroyed component? Then the FieldByName references may point to some garbage. Or there are simply no fields with such names, then FieldByName returns nil and AsFloat produces an AV. Just guessing.

×