Apr 08, 2008 and dpr files. Everything else we let Delphi create. I don't have a tds, blowing the dcu's aways doesn't help. I don't see a debug path anywhere, but it is in lib path. Other units in the same folder work just fine. It feels like a limitation in Delphi somewhere. 暮らし; https://lasopafar777.weebly.com/delphi-debbuger-blue-dot-but-red-with-cross.html.
Delphi - Component Debug
Now what?
This page contains a few of the more difficult design problems that I have had to work through. I hope it helps.
Constructor Missing 'inherited'
T_xyz = class(TComponent) public constructor Create(AOwner: TComponent); override; end; constructor T_xyz.Create(AOwner: TComponent); begin inherited; // the problem was caused by forgetting this // additional code here end; |
Delphi Debbuger Blue Dot But Red With Crossed
), yet the variable xyz1 was not assigned a value (was equal to nil - verified by setting a breakpoint) when FormCreate was called. Adding inherited to the constructor fixed the problem.type TForm1 = class(TForm) xyz1: T_xyz; abc1: T_abc; private { Private declarations } public { Public declarations } end; implementation procedure TForm1.FormCreate(Sender: TObject); begin abc1.xyz := xyz1; // xyz1 = nil when inherited was forgotten end; |
Wrong *Package* Name
The basic (and wrong) procedure is
- Create a new package
- Compile
- Install
This produces a default package name of
- C:Program FilesBorlandDelphi5ProjectsPackage1.dcu
C:Program FilesBorlandDelphi5ProjectsBplPackage1.dcp
C:Program FilesBorlandDelphi5ProjectsBplPackage1.bpl
At this point you can select your new components from the tool bar and place them on a form. If you want to change the code,
- Just recompile the package
- The form will be automatically closed
- Reopen the form (press F12) and the new properties (and whatever) will be displayed
OK, so now you save the package and give it a proper name. (Wow, are you screwed!!)
That's right, the old package is still there! You can write, compile, change whatever you want, and nothing is going to get fixed.
After 2 days of debugging a (very serious) problem, I decided to try and click Install again. That's when I saw the error
Cannot load package 'dcl_mcXYZ_50.' It contains unit 'mcABC,';which is also contained in package 'Package1' |
Of course, the solution was simple
- Unload the bad package
- Load the correctly named package
- Previously, each time I compiled the package, the form would close .. because it contained components from that package. However, on the next day, clicking compile did not force the form to close.
Correct Procedure
- Create a new package
- Add the *.pas files
- Save the package (*.dpk file)
- Compile
- Install
More
(Access violation at address 40003CAE in module 'Vcl50.bpl'. Read of address 000000EC) |
Delphi Debugger Blue Dot But Red With Cross Symbol
was caused while testing the proper operation of my component at design time. (It worked perfectly at runtime.) Basically, the new component has a published property that holds a pointer to another component. At design time, the property was set using the Object Inspector .. and everything worked fine. The problem occurred when I deleted the second component. Normally, this causes the property value to be cleared (which verifies that the notify flags are properly set) .. when there is a problem .. Delphi crashes. (This is a standard test that must be tried for every property that can hold a pointer to an object on the form.)However, since this is a design time failure, there are no useful debug tools (that I know of) that simplify problem identification. As a result, I slugged through the source code trying to see what was wrong. In desperation, I tried to reinstall the package .. and found the problem.
Delphi Debugger Blue Dot But Red With Cross Stitch
Deleting the old Package
- From the menu, select
- Component / Install Packages...
- Open the new (properly named) package in Delphi. From the toolbar, select the Options icon and click on the Packages tab
Delphi Debbuger Blue Dot But Red With Crossing
In this case, I selected
- C:Program FilesBorlandDelphi5ProjectsBplPackage1.bpl
When I installed the new (properly named) package, the icons were restored and the design time error was fixed. In the final analysis,
- The error was because I forget to include inherited in the constructor
- And could not be fixed because I installed the package before I saved it with a proper name