Jump to content
bazzer747

10.4.1 Update

Recommended Posts

Not properly saving/restoring window positions on a secondary monitor is clearly to blame on the IDE. This has never worked correctly (for me) since I got a secondary monitor (first tried with 10.1/10.2).

 

When I dock more IDE child windows on the secondary monitor, everything is fine. Save and restore works (apart from the coordinates).


Something goes wrong when the coordinates of third party add-ons are saved (tried with TestInsight, GExperts Grep).

- If the windows are undocked, the coordinates aren't saved at all. The windows disappear as soon as the desktop is restored.

- If the windows are docked, an A/V occurs when the desktop is restored.

 

I guess the A/V when restoring a docked child window is to blame on the combination IDE (TestInsight|Grep), because one of them tries to apply VCL Styles to the (TestInsight|Grep) window and fails.

Share this post


Link to post
49 minutes ago, luebbe said:

The IDE throws an A/V reliably in the following case:

- Place an IDE window (messages) on a secondary monitor

- Dock another window (TestInsight) onto the messages window

- Save this Desktop

- Restore this Desktop

I cannot reproduce the AV with those steps.

As @Anders Melander suggested, remove any add-on and try again. An add-on may cause the issue.

Share this post


Link to post

See my previous post:

- Docking "pure" IDE windows, save/restore desktop works

- Docking third party windows, save/restore desktop fails

Share this post


Link to post
10 minutes ago, luebbe said:

Docking third party windows, save/restore desktop fails

IMO it is an issue of third party add-on. Contact the producer/author/seller.

 

Share this post


Link to post
1 hour ago, FPiette said:

IMO it is an issue of third party add-on. Contact the producer/author/seller.

 

They might be following this thread already. 😉

 

Considering the fact that only the IDE has changed and that the same third pardy add-ons didn't cause exceptions in 10.4.0, it may also be the case that the add-ons uncover problems of the IDE.

  • Sad 1

Share this post


Link to post
4 minutes ago, luebbe said:

The docking issue with TestInsight has been fixed in TestInsight 1.1.9.0.

That was in 1.1.8.0 right? I just noticed it this morning on my 10.4.1 at home that still had an earlier TI build installed and I got some AV every time I opened a new VCL application.

Installing 1.1.9.0 removed it but I cannot recall any particular change that i conciously did for that defect - was it reported on the issue tracker?

Share this post


Link to post

No, it wasn't reported on the TI issue tracker. I only stumbled across it this morning after installing TI 1.1.8.0 in 10.4.1.

Share this post


Link to post
24 minutes ago, luebbe said:

it may also be the case that the add-ons uncover problems of the IDE.

Of course. But unlikely.

Share this post


Link to post
5 minutes ago, luebbe said:

No, it wasn't reported on the TI issue tracker. I only stumbled across it this morning after installing TI 1.1.8.0 in 10.4.1.

Ok, then probably some incompatibility - please report if it ever occurs again with 1.1.9.0

 

Just now, FPiette said:

Of course. But unlikely.

If the fact that with some bad code in a plugin you can completely bring down the IDE is a "problem of the IDE" then I would say it is very likely.

I think this has discussed before - especially as some plugins do quite some nasty things which can offer amazing functionality but are very very brittle - and in fact causes quite some work on the IDE devs as they cannot simply refactor or even rename stuff internally as they would like to.

Edited by Stefan Glienke
  • Like 1

Share this post


Link to post
25 minutes ago, Stefan Glienke said:

Ok, then probably some incompatibility - please report if it ever occurs again with 1.1.9.0

Maybe compiling with 10.4.1 has fixed the issue? I'll update my GExperts sources and build the dll. Let's see if it works afterwards.

Share this post


Link to post

Yes, recompiling GExperts with 10.4.1 fixed the crash issue too. Might be interesting for @dummzeuch to know.

So third party add-ons compiled with an earlier version of Delphi cause trouble in 10.4.1. What about the other way round?

Share this post


Link to post
8 hours ago, FPiette said:

@Darian Miller I your blog post, you said:

 

That is something I repeated so many times to so many people with one more advice: if source is not available, don't by that component.

 

And I often add this advice: never use prebuilt packages or dcu from 3rd party component, always rebuild everything, at least once to be sure you have everything required and know how to rebuild.

 

When you have several 3rd party component, create a project group with all projects required to rebuild all components, including your own component. Then when a new Delphi version comes, you can easily rebuild and reinstall everything within minutes. As you mentioned in your blog post:

 

 

I agree and repeated it twice in my blog - always buy the source.  I've been stuck with the task of replacing a component as we didn't have the source...it's horrible.  The reason you buy a component is so you don't have to write that code, and you end up having to write that code or rewrite what you have in place in order to use a different component.  And, your upgrade of Delphi waits until that task is done.

 

I haven't tried that tip on a single project group for all components.  I'll have to try to start doing that, thanks!  A little work up front, but then saves the big hassles later.

 

 

  • Like 1

Share this post


Link to post
42 minutes ago, luebbe said:

What about the other way round?

They might not run at all because of new procedure entry points that were not there before - see the comment from a user on my blog article trying TI 1.1.9.0 on 10.4.0.

Share this post


Link to post

The problem with layout restoration is most reported at the quality center. For various reasons. For me, it's linked to Parnassus BookMarks. I have no other problems. But I'm a layman, a self-taught person, not a programmer. The program is not extra large.
For complete information. I use: TMS - VCL UI Pack, CryptoGraph and FixInsight; MMX; CodeSide Express - not yet used; VirtualStringTree; FastReport 6 + FastCube2, EurekaLog

I'm trying to deploy CnPack, but there are big problems: long compilation times and build (> 3 times). I can't drag and drop text ... I'm testing the latest version now. From today.
I have one big problem: LSP doesn't want to work properly for me.

Share this post


Link to post
On 9/4/2020 at 2:49 AM, Sherlock said:

To distinguish between add-ons and components is like distinguishing between records and classes - a good thing to ease discussions with your peers.

But what happens now that Embarcadero has been turning records into classes?

Share this post


Link to post
1 minute ago, FPiette said:

There are now "managed records" which are not classes.

See the documentation: http://docwiki.embarcadero.com/RADStudio/Sydney/en/Custom_Managed_Records

 

They're modern classes in essentially every way except inheritance. I imagine they did this to get around the memory management issues with the standard classes. Heck, even Niklaus Wirth in the past has suggested that objects are just Pascal records with methods. 🙂

Quote

Nevertheless, the careful observer may wonder, where the core of the new paradigm
would hide, what was the essential difference to the traditional view of programming.
After all, the old cornerstones of procedural programming reappear, albeit embedded in a
new terminology: Objects are records, classes are types, methods are procedures, and
sending a method is equivalent to calling a procedure. True, records now consist of data
fields and, in addition, methods; and true, the feature called inheritance allows the
construction of heterogeneous data structures, useful also without object-orientation. Was
this change of terminology expressing an essential paradigm shift, or was it a vehicle for
gaining attention, a “sales trick”?

 

Share this post


Link to post
10 hours ago, Joseph MItzen said:

They're modern classes in essentially every way except inheritance.

Inheritance is maybe the most fundamental concept making a record different from an object. Record, managed or not, are definitely not classes.

 

Quote

I imagine they did this to get around the memory management issues with the standard classes.

I never found any memory management issues with classes.

 

Share this post


Link to post
11 hours ago, Joseph MItzen said:

I imagine they did this to get around the memory management issues with the standard classes. 

Nope. Memory management is completely different castle.

 

Custom managed records are about ability to use automatic, custom initialization and/or finalization on records and enabling easier implementation of some concepts like nullables. Without automatic initialization/finalization, you can still use records but there are trade offs - you either need to use manual initialization/finalization which is error prone or you need to implement some additional safeguard mechanisms that are more complex and commonly slower than using custom managed record.

  • Like 1

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×