Access violation on a form in Windows 2000

Posted on 2003-10-28
Last Modified: 2010-04-05
I have a problem (only under Win2000, works on NT) where I have a form where the parent property is assigned to a panel of another form and it blows up with an access violation.  This problem does not happen on any other forms done in the same way using the same base create method, any ideas?

Question by:Ziggy500
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
  • 2
  • +3

Expert Comment

ID: 9634953
>I have a form where the parent property is assigned to a panel of another form
Why do you need it?

Author Comment

ID: 9635015
It is needed as the application is based on a framework where we snap in various forms to present information as the user travels around the application.

As I said, it is working in all instances except for one form that causes the access violation...

LVL 27

Expert Comment

ID: 9635421
i used this kind of embedded forms also often,
and got never an access violation

could you more specific about the access violation
and when it is raised?

meikl ;-)
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Author Comment

ID: 9635783
The violation is being raised when the child form was being created. It has been narrowed down through process of eliminating controls to a combo control on the form. This control appears on the other forms as well so still not sure what is going on. We thought setting OldCreationOrder to false solved the problem but the problem is back after one successful open.

LVL 27

Expert Comment

ID: 9635916
this combo-control is a standard TComboBox or a Thirdparty?
- if standard, how are the items populated or are they static?
- if thirdparty, which?

Author Comment

ID: 9636020
It is an in house combo, it appears the problem is arising when the combo allows blank items. When I changed the combo boxes on other forms to allow blanks they also blow up. Perhaps in windows 2000 the messaging is not in the order I am expecting and the list is not created when I try to put a blank item in it? If I set allow blanks to false it works fine.

procedure TLookupListControl.RegisterList(List: TStrings; OnLoadEvent: TNotifyEvent; AllowBlankItem: boolean);
Var I: Integer;
  For I := 0 to RegList.Count-1 do
    if List = TRegItem(RegList.Items[I]).List then break;
  if (I = RegList.Count) or (RegList.Count = 0) then begin
    RegList.Add(TRegItem.Create(List, OnLoadEvent, AllowBlankItem));
    end; // if
    List.Assign(FList);  // load strings here
    // if a blank item is allowed then add it.
    If AllowBlankItem then
      List.InsertObject(0, '', TLPList.Create(Null, False));
    end; // R.P.B.
end; // RegisterList


Author Comment

ID: 9637831
Actual error:

Access violation at address 77F8C7A4 in module 'ntdll.dll'. Write of address 00405201

Accepted Solution

Colin_Dawson earned 250 total points
ID: 9645407
How about a quick botch.

    If AllowBlankItem then
      List.InsertObject(0, ' ', TLPList.Create(Null, False));

Put a space in the Item.

The reason that I'm saying this is that the TStrings that is behind the Items, doesn't actually create a place holder for the object when the text for that line is set to ''. - It doesn't do this to save memory.  The same is true for cells on a TStringGrid too!

Expert Comment

ID: 9652347
I'm glad that old chestnut still works.

Thanks for the points.

Author Comment

ID: 9652506
I was looking in all the wrong places, such a simple solution!

Odd that it only pops its head up on windows 2000 too...

Thanks alot!


Expert Comment

ID: 9874702
You can try EurekaLog (

EurekaLog is an add-in tool that gives to your application (GUI, Console, Web, etc.) the ability to catch every exception (even those raised by memory leaks) and every infinite-loops/deadlock bugs, generating a detailed log of call stack (with unit, class, method and line #), showing and sending it back to you via email.
Best regards...

Fabio Dell'Aria.

Expert Comment

ID: 10282413
Fantastic !!!!

I can believe my luck: I entered "77f8c7a4 ntdll.dll" into google and it displayed this !!!!

I can't believe it is windows 2000 specific.

Solved the problem very quickly and kept customer happy.

Expert Comment

ID: 10292582
hehe, it lucky for you that it is an OS problem.  Otherwise that address would have been about as much use as a chocolate teapot :-)


Featured Post

On Demand Webinar: Networking for the Cloud Era

Did you know SD-WANs can improve network connectivity? Check out this webinar to learn how an SD-WAN simplified, one-click tool can help you migrate and manage data in the cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article explains how to create forms/units independent of other forms/units object names in a delphi project. Have you ever created a form for user input in a Delphi project and then had the need to have that same form in a other Delphi proj…
Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
In this video, viewers are given an introduction to using the Windows 10 Snipping Tool, how to quickly locate it when it's needed and also how make it always available with a single click of a mouse button, by pinning it to the Desktop Task Bar. Int…
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …
Suggested Courses
Course of the Month11 days, 6 hours left to enroll

632 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question