Watch, Follow, &
Connect with Us
Public Report
Report From: Delphi-BCB/IDE    [ Add a report in this area ]  
Report #:  133682   Status: Resolved
Visual inheritance causes an Access Violation
Project:  Delphi Build #:  23.0.20618.2753
Version:    21.0 Submitted By:   Michael Trainor
Report Type:  Basic functionality failure Date Reported:  9/18/2015 5:52:42 AM
Severity:    Critical / Show Stopper Last Updated: 10/20/2015 3:31:42 AM
Platform:    All platforms Internal Tracking #:   70338
Resolution: Cannot Reproduce (Resolution Comments) Resolved in Build: : None
Duplicate of:  None
Voting and Rating
Overall Rating: No Ratings Yet
0.00 out of 5
Total Votes: 1
Description
NOTE: I have used XE7 as there is no Delphi 10 Seattle in the list box

Attempting to open a frame or form inherited from anything other than TFrame/TForm will cause an AccessViolation in the IDE if the base frame/form is not already open.

Once the AV occurs any visual editing is impossible until after restart of D10.
Steps to Reproduce:
Simple steps to reproduce:

Create new VCL Forms Application (File, New, VCL Forms Application)
Create a new frame (File, New, Other, Delphi Files, VCL Frame)
Save the new frame - the default name is fine
Create a new inherited frame/form (File, new, Other, Inheritable Items, select the frame created previously)
Save the new frame - the default name is fine
Save the project
Close both frames
Close the project
Reopen the project
In the project manager double click on the inherited unit (Unit3.pas if you used the default names). Access violation
Workarounds
The problem can be worked around if you open all of the base frames/forms first, in the order they're referenced (ie starting at the one inherited from TForm or TFrame).

If you're using any significant visual inheritance that's more than a little problem. If you close a project with any inherited frames/forms open and then try to reopen the project later, you'll get an AV - so you can't use a saved project desktop.

And if you don't save the desktop any time you open a frame/form you better hope you know what it's inherited from, if you miss one you need to close everything visual (including D10) and restart and reopen everything.
Attachment
133682.zip
Comments

Michael Trainor at 9/18/2015 5:54:30 AM -
The attached project will cause an immediate Access Violation on load in Delphi 10

Dave Nottage at 10/5/2015 3:11:00 PM -
I've found that it doesn't matter whether or not the frame is inherited from another: an AV occurs if you simply open a frame before opening a form.

Juan Antonio Ruzafa at 10/19/2015 6:27:57 AM -
Hi,
Please use https://quality.embarcadero.com/secure/Dashboard.jspa to report bugs for RadStudio Seattle

Server Response from: ETNACODE01