Delphi XE2 - Company Business System Application, errors when running on Win 7

I have an application that I develop for my company, that is basically our main business system, including ERP/MRP/CRM, etc.

Recently, I've migrated my development environment to Delphi XE2 (I still develop on a Win XP computer).  I use the PDAC VCL component library to connect to a Pervasive Server Engine, via the installed Client Engine on each computer.

Do to the amount of errors that my program is getting, and because I have had no luck in "capturing" and handling the errors with exception handling, I decided to try "MadExcept" within my Delphi project.  I love the ability of MadExcept to capture any and all errors and submit "bug reports" to me directly via email.  However, I am having a difficult time isolating exactly what is causing the errors, even with the bug reports.  I guess I need to go back to school, so that I can read assembler code, or something, but I was hoping by posting one of these "bug reports" someone could give me a clue, to help figure out what is causing the issues.  I do know that the issues are sometimes related to Rave reports, and  I do not intend to just re-write the reports, as that would be quite an undertaking.  Rave is available for XE4, Embarcadero's latest release, so I feel comfortable keeping Rave for my reports.

I'm attaching a file to this post, for review of a couple of bug reports.  Please tell me if any of you can decipher these and help me on my way to debugging my application.

TIA,
Brent
bugreport.txt
answerfreakAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Sinisa VukSoftware architectCommented:
Go look at main thread topic in file. There is procedure call stack. Error comes after you click on menu item: TMainForm.PrintSingleCopy1Click
After that (maybe in your code) is calling: TSpeedButton.Click/PrintButton1Click
In this event method is calling: TMainForm.PrintApprovalCopy
This goes to open Rave report: TRvProject.Open
Rave is going to load report file but this one generates exception:
A component named DataView4 already exists.
Somewhere you have DataView4 component created or you work incorrectly with Rave report.
http://www.delphigroups.info/2/7/545094.html
http://edn.embarcadero.com/article/30260

Post your code for Rave reporting here. Maybe I can help more....
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
MerijnBSr. Software EngineerCommented:
nothing to add to what sinisav said. Just keep in mind that it is very useful to learn how to read these stack traces (don't worry, no assembler knowledge is required :)).

As a rule of thumb, start op the top and work your way down until you see code which you made yourself (in this case TMainForm.PrintApprovalCopy, like sinisav pointed out). As you can see it even shows the line number (27330) where the problem occurred. The +15 there probably means the 15th line from the begin in PrintApprovalCopy().

Like sinisav said: check the exception message (in this case "A component named DataView4 already exists").

Most of the times with this information you can get a long way in trouble shooting :)
0
answerfreakAuthor Commented:
I have attempted resolve the issue that I was led to by both Expert Comments, however, as soon as that error stopped, another one popped up:

date/time         : 2013-08-28, 16:49:20, 987ms
computer name     : ORDERENTRYPC1
user name         : saustin
registered owner  : saustin
operating system  : Windows 7 x64 Service Pack 1 build 7601
system language   : English
system up time    : 8 hours 45 minutes
program up time   : 20 minutes 6 seconds
processors        : 4x Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz
physical memory   : 1944/3918 MB (free/total)
free disk space   : (C:) 412.48 GB
display mode      : 1920x1080, 32 bit
process id        : $1c3c
allocated memory  : 101.17 MB
executable        : ACSIManufacturing.exe
exec. date/time   : 2013-08-28 16:28
version           : 2.0.0.3
compiled with     : Delphi XE2
madExcept version : 4.0.7
callstack crc     : $65746e69, $40b29512, $40b29512
exception number  : 2
exception class   : EAccessViolation
exception message : Access violation at address 65746E69. Write of address 65746E69.

main thread ($17a4):
65746e69 +000 ???
00912682 +012 ACSIManufacturing.exe RvProj                    TRaveProjectManager.DeactivateReport
00912b31 +005 ACSIManufacturing.exe RvProj                    TRaveProjectManager.Unload
0097047e +01e ACSIManufacturing.exe RpRave                    TRvProject.Close
0096fcc9 +00d ACSIManufacturing.exe RpRave                    TRvProject.Destroy
0048dae7 +057 ACSIManufacturing.exe System.Classes            TComponent.DestroyComponents
0048d82b +01b ACSIManufacturing.exe System.Classes            TComponent.Destroy
0051ec6c +0e8 ACSIManufacturing.exe Vcl.Controls              TControl.Destroy
00523498 +114 ACSIManufacturing.exe Vcl.Controls              TWinControl.Destroy
005e4cc7 +037 ACSIManufacturing.exe Vcl.Forms                 TScrollingWinControl.Destroy
005e5c21 +0f9 ACSIManufacturing.exe Vcl.Forms                 TCustomForm.Destroy
0048dae7 +057 ACSIManufacturing.exe System.Classes            TComponent.DestroyComponents
005e3a9d +035 ACSIManufacturing.exe Vcl.Forms                 DoneApplication
00450186 +026 ACSIManufacturing.exe System.SysUtils           DoExitProc
00408399 +065 ACSIManufacturing.exe System             29  +0 @Halt0
00ee2113 +283 ACSIManufacturing.exe ACSIManufacturing 116 +40 initialization
76b133a8 +010 kernel32.dll                                    BaseThreadInitThunk

thread $1874:
77830156 +0e ntdll.dll     NtWaitForMultipleObjects
76b133a8 +10 kernel32.dll  BaseThreadInitThunk

thread $15e4:
77830156 +00e ntdll.dll                       NtWaitForMultipleObjects
004cf589 +00d ACSIManufacturing.exe madExcept CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept ThreadExceptFrame
76b133a8 +010 kernel32.dll                    BaseThreadInitThunk
>> created by main thread ($17a4) at:
72b52713 +24f netbios.dll                     Netbios

thread $1524:
77831f3f +0b ntdll.dll     NtWaitForWorkViaWorkerFactory
76b133a8 +10 kernel32.dll  BaseThreadInitThunk

thread $1acc: <priority:-15>
7782f8ca +0e ntdll.dll                       NtWaitForSingleObject
76861497 +92 KERNELBASE.dll                  WaitForSingleObjectEx
76b1118f +3e kernel32.dll                    WaitForSingleObjectEx
76b11143 +0d kernel32.dll                    WaitForSingleObject
730729b8 +38 MSVCR80.dll                     _endthreadex
004cf589 +0d ACSIManufacturing.exe madExcept CallThreadProcSafe
004cf5f3 +37 ACSIManufacturing.exe madExcept ThreadExceptFrame
76b133a8 +10 kernel32.dll                    BaseThreadInitThunk
>> created by main thread ($17a4) at:
73072ac7 +7f MSVCR80.dll                     _beginthreadex

thread $bb8:
7782f8ca +0e ntdll.dll                       NtWaitForSingleObject
76861497 +92 KERNELBASE.dll                  WaitForSingleObjectEx
76b1118f +3e kernel32.dll                    WaitForSingleObjectEx
76b11143 +0d kernel32.dll                    WaitForSingleObject
004cf589 +0d ACSIManufacturing.exe madExcept CallThreadProcSafe
004cf5f3 +37 ACSIManufacturing.exe madExcept ThreadExceptFrame
76b133a8 +10 kernel32.dll                    BaseThreadInitThunk
>> created by main thread ($17a4) at:
75164c95 +00 winspool.drv

Open in new window


Any idea about this one???
0
Powerful Yet Easy-to-Use Network Monitoring

Identify excessive bandwidth utilization or unexpected application traffic with SolarWinds Bandwidth Analyzer Pack.

MerijnBSr. Software EngineerCommented:
It seems an exception occurs in one of the unit's initializaion sections.
Is there an initialization section in the unit ACSIManufacturing?
0
answerfreakAuthor Commented:
That is the source unit of the program.  Nothing very special about it.
Here's the code:
program ACSIManufacturing;

uses
  madExcept,
  madLinkDisAsm,
  madListHardware,
  madListProcesses,
  madListModules,
  Forms,
  rsFileVersion,
  Dialogs,
  Windows,
  Classes,
  MainUnit in 'MainUnit.pas' {MainForm},
  DatamoduleUnit in 'DatamoduleUnit.pas' {DM: TDataModule},
  LocateRecordUnit in 'LocateRecordUnit.pas' {LocateRecordForm},
  FilterSort in 'FilterSort.pas' {FilterSortForm},
  loading in 'loading.pas' {LoadingForm},
  modelform in 'modelform.pas' {ModelsForm},
  neworderunit in 'neworderunit.pas' {NewOrderForm},
  Progress in 'Progress.pas' {ProgressBarForm},
  aboutunit in 'aboutunit.pas' {AboutForm},
  Messagepicklist in 'Messagepicklist.pas' {MessagePickListForm},
  NewUserUnit in 'NewUserUnit.pas' {NewUserForm},
  SingleEditBoxUnit in 'SingleEditBoxUnit.pas' {SingleEditBoxForm},
  OrderCalendarUnit in 'OrderCalendarUnit.pas' {OrderCalendarForm},
  newpackunit in 'newpackunit.pas' {NewPackForm},
  ReleaseOrders in 'ReleaseOrders.pas' {FormReleaseOrders},
  loginform in 'loginform.pas' {FormLogin},
  ignoregenericunit in 'ignoregenericunit.pas' {FormIgnoreGenerics},
  Printallcopiesunit in 'Printallcopiesunit.pas' {FormPrintAllCopies},
  packitempick in 'packitempick.pas' {SelectOrderItems},
  MarkOrderShippedUnit in 'MarkOrderShippedUnit.pas' {MarkOrderShippedForm},
  createcontainerunit in 'createcontainerunit.pas' {ContainerForm},
  MasterComments in 'MasterComments.pas' {FormComments},
  CustomMaster in 'CustomMaster.pas' {FormCustomMaster},
  RevisionUnit in 'RevisionUnit.pas' {FormRevision},
  MarkBacklogUnit in 'MarkBacklogUnit.pas' {MarkBacklogForm},
  ChangeARCodeUnit in 'ChangeARCodeUnit.pas' {ChangeARCodeForm},
  HelpUnit in 'HelpUnit.pas' {FormHelp},
  SingleComboBoxUnit in 'SingleComboBoxUnit.pas' {SingleComboBoxUnit1},
  formprintorders in 'formprintorders.pas' {FormPrintOrder},
  RecordsFoundForm in 'RecordsFoundForm.pas' {FormRecordsFound},
  FormQuickReportMailingLabelUnit in 'FormQuickReportMailingLabelUnit.pas' {FormQuickReport},
  ResultsUnit in 'ResultsUnit.pas' {FormResults},
  PrintingMainUnit in 'PrintingMainUnit.pas' {PrintingMainForm},
  supermodelform in 'supermodelform.pas' {FormSuperModel},
  FormQuickReportPurpartsLabelSmallUnit in 'FormQuickReportPurpartsLabelSmallUnit.pas' {FormQuickReport2},
  SystemNumberSplitCombineUnit in 'SystemNumberSplitCombineUnit.pas' {FormSystemNumberSplitCombine},
  PricePartUnit in 'PricePartUnit.pas' {PricePartForm},
  PrintLandscape in 'PrintLandscape.pas' {FormPrintLandscape},
  OrderAllocationsUnit in 'OrderAllocationsUnit.pas' {OrderAllocationsForm},
  ViewResultsUnit in 'ViewResultsUnit.pas' {FormViewResults},
  CellTextEditor in 'CellTextEditor.pas' {CellTextEditForm},
  BarcodeLabelsUnit in 'BarcodeLabelsUnit.pas' {BarcodeLabelsForm},
  PrintEmployeeTimeClockLabels in 'PrintEmployeeTimeClockLabels.pas' {FormPrintEmployeeTimeClockLabels},
  FormNewEmployeeUnit in 'FormNewEmployeeUnit.pas' {FormNewEmployee},
  SystemNumberSplitUnit in 'SystemNumberSplitUnit.pas' {FormSystemNumberSplit},
  CheckPreviousInstance in 'CheckPreviousInstance.pas',
  AttachedFileDesignationUnit in 'AttachedFileDesignationUnit.pas' {AttachedFileDesignationForm},
  SetPricedPartsUnit in 'SetPricedPartsUnit.pas' {SetPricedPartsForm},
  SendEmailUnit in 'SendEmailUnit.pas' {SendEmailForm},
  CloneFOUnit in 'CloneFOUnit.pas' {CloneFOForm},
  printingunit in 'printingunit.pas' {PrintForm},
  Vcl.Themes,
  Vcl.Styles;

var
    FV : TrsFileVersion;
    Stringlist : TStringlist;
  const
    VersionFile = '\\AUTCON2\SYS6\DRIVERS\Custom Applications\ACSIManufacturing\version.txt';
{$R *.RES}


begin
  //ReportMemoryLeaksOnShutdown := DebugHook <> 0;
  LoadingForm:= TLoadingForm.Create(Application);
  LoadingForm.show;
  LoadingForm.update;
  FV := TrsFileVersion.Create;
  Stringlist:= TStringlist.create;
  Stringlist.LoadFromFile(VersionFile);
  if not CheckPreviousInstance.RestoreIfRunning(Application.Handle, 1) then
  begin
    If FV.GetFileVersion('acsimanufacturing.exe') then begin
      If FV.Version < Stringlist.Strings[0] then begin
        Showmessage('Incorrect program version!  Please click "Next" when prompted to install newer version.');
        WinExec('\\AUTCON2\SYS6\drivers\custom applications\acsimanufacturing\setup.exe', 1);
        Sleep(350);
      end else begin
        FV.Free;
        Stringlist.Free;
        Application.Initialize;
        Application.Title := 'ACSI Manufacturing';
        Application.CreateForm(TDM, DM);
        Application.CreateForm(TMainForm, MainForm);
        Application.CreateForm(TFormViewResults, FormViewResults);
        Application.CreateForm(TBarcodeLabelsForm, BarcodeLabelsForm);
    //  Application.CreateForm(TFormEditVerifySubassemblyParts, FormEditVerifySubassemblyParts);
        Application.CreateForm(TFormNewEmployee, FormNewEmployee);
        Application.CreateForm(TFormSystemNumberSplit, FormSystemNumberSplit);
        Application.CreateForm(TAttachedFileDesignationForm, AttachedFileDesignationForm);
        Application.CreateForm(TSetPricedPartsForm, SetPricedPartsForm);
        Application.CreateForm(TSendEmailForm, SendEmailForm);
        Application.CreateForm(TCloneFOForm, CloneFOForm);
        Application.CreateForm(TPrintForm, PrintForm);
        //Application.CreateForm(TFormPrintLandscape, FormPrintLandscape);
        LoadingForm.Hide;
        LoadingForm.Free;
        Application.Run;
      end;
    end;
  end;
end.

Open in new window

0
MerijnBSr. Software EngineerCommented:
put a break point on line 94 and check which line gives the exception please
0
answerfreakAuthor Commented:
I apologize for the delay.  I manage all of the IT at the company I work for (one man show), so I've been busy most of the day.

I will do this and after testing and getting the error, I'll post the error details (line number).

Thanks,
Brent
0
Sinisa VukSoftware architectCommented:
Line Application.Initialize must be moved before line LoadingForm:= TLoadingForm.Create(Application). Move lines FV.Free, Stringlist.Free, LoadingForm.Free before
end.
line. hope that I was clear.
0
answerfreakAuthor Commented:
@sinisav:

I've used the code this way for years.  It keeps my app from loading if the version of the program is older than the newer one.  However, I'll try your suggestion and see if that helps.  I find it strange that this would cause a problem only with Windows 7.  The program runs fine on XP Pro.
0
answerfreakAuthor Commented:
@sinisav:

You mean like this?

program ACSIManufacturing;

uses
  madExcept,
  madLinkDisAsm,
  madListHardware,
  madListProcesses,
  madListModules,
  Forms,
  rsFileVersion,
  Dialogs,
  Windows,
  Classes,
  MainUnit in 'MainUnit.pas' {MainForm},
  DatamoduleUnit in 'DatamoduleUnit.pas' {DM: TDataModule},
  LocateRecordUnit in 'LocateRecordUnit.pas' {LocateRecordForm},
  FilterSort in 'FilterSort.pas' {FilterSortForm},
  loading in 'loading.pas' {LoadingForm},
  modelform in 'modelform.pas' {ModelsForm},
  neworderunit in 'neworderunit.pas' {NewOrderForm},
  Progress in 'Progress.pas' {ProgressBarForm},
  aboutunit in 'aboutunit.pas' {AboutForm},
  Messagepicklist in 'Messagepicklist.pas' {MessagePickListForm},
  NewUserUnit in 'NewUserUnit.pas' {NewUserForm},
  SingleEditBoxUnit in 'SingleEditBoxUnit.pas' {SingleEditBoxForm},
  OrderCalendarUnit in 'OrderCalendarUnit.pas' {OrderCalendarForm},
  newpackunit in 'newpackunit.pas' {NewPackForm},
  ReleaseOrders in 'ReleaseOrders.pas' {FormReleaseOrders},
  loginform in 'loginform.pas' {FormLogin},
  ignoregenericunit in 'ignoregenericunit.pas' {FormIgnoreGenerics},
  Printallcopiesunit in 'Printallcopiesunit.pas' {FormPrintAllCopies},
  packitempick in 'packitempick.pas' {SelectOrderItems},
  MarkOrderShippedUnit in 'MarkOrderShippedUnit.pas' {MarkOrderShippedForm},
  createcontainerunit in 'createcontainerunit.pas' {ContainerForm},
  MasterComments in 'MasterComments.pas' {FormComments},
  CustomMaster in 'CustomMaster.pas' {FormCustomMaster},
  RevisionUnit in 'RevisionUnit.pas' {FormRevision},
  MarkBacklogUnit in 'MarkBacklogUnit.pas' {MarkBacklogForm},
  ChangeARCodeUnit in 'ChangeARCodeUnit.pas' {ChangeARCodeForm},
  HelpUnit in 'HelpUnit.pas' {FormHelp},
  SingleComboBoxUnit in 'SingleComboBoxUnit.pas' {SingleComboBoxUnit1},
  formprintorders in 'formprintorders.pas' {FormPrintOrder},
  RecordsFoundForm in 'RecordsFoundForm.pas' {FormRecordsFound},
  FormQuickReportMailingLabelUnit in 'FormQuickReportMailingLabelUnit.pas' {FormQuickReport},
  ResultsUnit in 'ResultsUnit.pas' {FormResults},
  PrintingMainUnit in 'PrintingMainUnit.pas' {PrintingMainForm},
  supermodelform in 'supermodelform.pas' {FormSuperModel},
  FormQuickReportPurpartsLabelSmallUnit in 'FormQuickReportPurpartsLabelSmallUnit.pas' {FormQuickReport2},
  SystemNumberSplitCombineUnit in 'SystemNumberSplitCombineUnit.pas' {FormSystemNumberSplitCombine},
  PricePartUnit in 'PricePartUnit.pas' {PricePartForm},
  PrintLandscape in 'PrintLandscape.pas' {FormPrintLandscape},
  OrderAllocationsUnit in 'OrderAllocationsUnit.pas' {OrderAllocationsForm},
  ViewResultsUnit in 'ViewResultsUnit.pas' {FormViewResults},
  CellTextEditor in 'CellTextEditor.pas' {CellTextEditForm},
  BarcodeLabelsUnit in 'BarcodeLabelsUnit.pas' {BarcodeLabelsForm},
  PrintEmployeeTimeClockLabels in 'PrintEmployeeTimeClockLabels.pas' {FormPrintEmployeeTimeClockLabels},
  FormNewEmployeeUnit in 'FormNewEmployeeUnit.pas' {FormNewEmployee},
  SystemNumberSplitUnit in 'SystemNumberSplitUnit.pas' {FormSystemNumberSplit},
  CheckPreviousInstance in 'CheckPreviousInstance.pas',
  AttachedFileDesignationUnit in 'AttachedFileDesignationUnit.pas' {AttachedFileDesignationForm},
  SetPricedPartsUnit in 'SetPricedPartsUnit.pas' {SetPricedPartsForm},
  SendEmailUnit in 'SendEmailUnit.pas' {SendEmailForm},
  CloneFOUnit in 'CloneFOUnit.pas' {CloneFOForm},
  printingunit in 'printingunit.pas' {PrintForm},
  Vcl.Themes,
  Vcl.Styles;

var
    FV : TrsFileVersion;
    Stringlist : TStringlist;
  const
    VersionFile = '\\AUTCON2\SYS6\DRIVERS\Custom Applications\ACSIManufacturing\version.txt';
{$R *.RES}


begin
  //ReportMemoryLeaksOnShutdown := DebugHook <> 0;
  Application.Initialize;
  LoadingForm:= TLoadingForm.Create(Application);
  LoadingForm.show;
  LoadingForm.update;
  FV := TrsFileVersion.Create;
  Stringlist:= TStringlist.create;
  Stringlist.LoadFromFile(VersionFile);
  if not CheckPreviousInstance.RestoreIfRunning(Application.Handle, 1) then
  begin
    If FV.GetFileVersion('acsimanufacturing.exe') then begin
      If FV.Version < Stringlist.Strings[0] then begin
        Showmessage('Incorrect program version!  Please click "Next" when prompted to install newer version.');
        WinExec('\\AUTCON2\SYS6\drivers\custom applications\acsimanufacturing\setup.exe', 1);
        Sleep(350);
      end else begin
        Application.Title := 'ACSI Manufacturing';
        Application.CreateForm(TDM, DM);
        Application.CreateForm(TMainForm, MainForm);
        Application.CreateForm(TFormViewResults, FormViewResults);
        Application.CreateForm(TBarcodeLabelsForm, BarcodeLabelsForm);
    //  Application.CreateForm(TFormEditVerifySubassemblyParts, FormEditVerifySubassemblyParts);
        Application.CreateForm(TFormNewEmployee, FormNewEmployee);
        Application.CreateForm(TFormSystemNumberSplit, FormSystemNumberSplit);
        Application.CreateForm(TAttachedFileDesignationForm, AttachedFileDesignationForm);
        Application.CreateForm(TSetPricedPartsForm, SetPricedPartsForm);
        Application.CreateForm(TSendEmailForm, SendEmailForm);
        Application.CreateForm(TCloneFOForm, CloneFOForm);
        Application.CreateForm(TPrintForm, PrintForm);
        //Application.CreateForm(TFormPrintLandscape, FormPrintLandscape);
        LoadingForm.Hide;
        Application.Run;
      end;
    end;
  end;
  FV.Free;
  Stringlist.Free;
  LoadingForm.Free;
end.

Open in new window



I guess that makes sense, because it needs to be able to free those objects no matter what, and the initialization of the program should technically be first.

I'll let you know how it goes.  Thanks!
0
answerfreakAuthor Commented:
Ok, after performing the changes and re-compiling.  I placed the updated application on the single user's computer.  It's been working without any problems for most of the day.  Then when she closed the program, it threw an exception.  However, I'd already tested closing it without any problems.  

Here is the bug report:

date/time         : 2013-09-05, 14:33:17, 857ms
computer name     : ORDERENTRYPC1
user name         : saustin
registered owner  : saustin
operating system  : Windows 7 x64 Service Pack 1 build 7601
system language   : English
system up time    : 52 minutes 19 seconds
program up time   : 48 minutes 17 seconds
processors        : 4x Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz
physical memory   : 1887/3918 MB (free/total)
free disk space   : (C:) 410.38 GB
display mode      : 1920x1080, 32 bit
process id        : $e48
allocated memory  : 110.33 MB
executable        : ACSIManufacturing.exe
exec. date/time   : 2013-09-05 08:19
version           : 2.0.0.3
compiled with     : Delphi XE2
madExcept version : 4.0.7
callstack crc     : $b2d0aa8a, $577e0999, $577e0999
exception number  : 1
exception class   : EAccessViolation
exception message : Access violation at address 004038FD in module 'ACSIManufacturing.exe'. Write of address 00000000.

main thread ($8d8):
004038fd +081 ACSIManufacturing.exe System             29  +0 SysFreeMem
00404b0c +004 ACSIManufacturing.exe System             29  +0 @FreeMem
00408680 +01c ACSIManufacturing.exe System             29  +0 @LStrClr
004087ed +025 ACSIManufacturing.exe System             29  +0 @UStrFromPWCharLen
005d8a98 +078 ACSIManufacturing.exe Vcl.Menus                 TMenu.UpdateImage
005d8b3f +00b ACSIManufacturing.exe Vcl.Menus                 TMenu.SetWindowHandle
005ea0a5 +17d ACSIManufacturing.exe Vcl.Forms                 TCustomForm.WMDestroy
0052171d +2bd ACSIManufacturing.exe Vcl.Controls              TControl.WndProc
0052607b +5b3 ACSIManufacturing.exe Vcl.Controls              TWinControl.WndProc
005e6f11 +60d ACSIManufacturing.exe Vcl.Forms                 TCustomForm.WndProc
005256d0 +02c ACSIManufacturing.exe Vcl.Controls              TWinControl.MainWndProc
0048f834 +014 ACSIManufacturing.exe System.Classes            StdWndProc
76fa0107 +02b ntdll.dll                                       KiUserCallbackDispatcher
005e5b9b +073 ACSIManufacturing.exe Vcl.Forms                 TCustomForm.Destroy
0048dae7 +057 ACSIManufacturing.exe System.Classes            TComponent.DestroyComponents
005e3a9d +035 ACSIManufacturing.exe Vcl.Forms                 DoneApplication
00450186 +026 ACSIManufacturing.exe System.SysUtils           DoExitProc
00408399 +065 ACSIManufacturing.exe System             29  +0 @Halt0
00ee2113 +283 ACSIManufacturing.exe ACSIManufacturing 115 +39 initialization
755c33a8 +010 kernel32.dll                                    BaseThreadInitThunk

thread $e40:
76fb0156 +0e ntdll.dll     NtWaitForMultipleObjects
755c33a8 +10 kernel32.dll  BaseThreadInitThunk

thread $1414:
76fb0156 +00e ntdll.dll                       NtWaitForMultipleObjects
004cf589 +00d ACSIManufacturing.exe madExcept CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept ThreadExceptFrame
755c33a8 +010 kernel32.dll                    BaseThreadInitThunk
>> created by main thread ($8d8) at:
6fc12713 +24f netbios.dll                     Netbios

thread $148c (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $1490 (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $1494 (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $1498 (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $149c (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $14a0 (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $14a4 (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $14a8 (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $14ac (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $14b0 (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $14b4 (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $14b8 (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $14bc (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $14c0 (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $14c4 (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $14c8 (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $14cc (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $14d0 (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $14d4 (TDataConnectThread):
76fb0156 +00e ntdll.dll                                  NtWaitForMultipleObjects
74f515e3 +0fa KERNELBASE.dll                             WaitForMultipleObjectsEx
755c1a27 +089 kernel32.dll                               WaitForMultipleObjectsEx
755c421b +013 kernel32.dll                               WaitForMultipleObjects
008ffad0 +168 ACSIManufacturing.exe RpCon                TDataConnectThread.Execute
004cf6a7 +02b ACSIManufacturing.exe madExcept            HookedTThreadExecute
0048c7aa +042 ACSIManufacturing.exe System.Classes       ThreadProc
004084ec +028 ACSIManufacturing.exe System         29 +0 ThreadWrapper
004cf589 +00d ACSIManufacturing.exe madExcept            CallThreadProcSafe
004cf5f3 +037 ACSIManufacturing.exe madExcept            ThreadExceptFrame
755c33a8 +010 kernel32.dll                               BaseThreadInitThunk
>> created by main thread ($8d8) at:
009005a9 +029 ACSIManufacturing.exe RpCon                TRvCustomConnection.SetRTVisible

thread $1520: <priority:-15>
76faf8ca +0e ntdll.dll                       NtWaitForSingleObject
74f51497 +92 KERNELBASE.dll                  WaitForSingleObjectEx
755c118f +3e kernel32.dll                    WaitForSingleObjectEx
755c1143 +0d kernel32.dll                    WaitForSingleObject
727f29b8 +38 MSVCR80.dll                     _endthreadex
004cf589 +0d ACSIManufacturing.exe madExcept CallThreadProcSafe
004cf5f3 +37 ACSIManufacturing.exe madExcept ThreadExceptFrame
755c33a8 +10 kernel32.dll                    BaseThreadInitThunk
>> created by main thread ($8d8) at:
727f2ac7 +7f MSVCR80.dll                     _beginthreadex

thread $52c:
76faf8ca +0e ntdll.dll                       NtWaitForSingleObject
74f51497 +92 KERNELBASE.dll                  WaitForSingleObjectEx
755c118f +3e kernel32.dll                    WaitForSingleObjectEx
755c1143 +0d kernel32.dll                    WaitForSingleObject
004cf589 +0d ACSIManufacturing.exe madExcept CallThreadProcSafe
004cf5f3 +37 ACSIManufacturing.exe madExcept ThreadExceptFrame
755c33a8 +10 kernel32.dll                    BaseThreadInitThunk
>> created by main thread ($8d8) at:
74854c95 +00 winspool.drv

thread $44c:
76fb1f3f +0b ntdll.dll     NtWaitForWorkViaWorkerFactory
755c33a8 +10 kernel32.dll  BaseThreadInitThunk

thread $1b10:
76fb1f3f +0b ntdll.dll     NtWaitForWorkViaWorkerFactory
755c33a8 +10 kernel32.dll  BaseThreadInitThunk

thread $1b0c:
76fb1f3f +0b ntdll.dll     NtWaitForWorkViaWorkerFactory
755c33a8 +10 kernel32.dll  BaseThreadInitThunk

Open in new window


I've been programming in Delphi for years.  However, since I have had no debugging issues like this, I'm kinda out of my league on this.  So again, I must ask you to please review the bug report, and tell me what you can deduce is wrong.

I'm happy to provide code from the application, I just need to know which units are the culprits, that might need looking into first.
0
Sinisa VukSoftware architectCommented:
please move line Application.CreateForm(TMainForm, MainForm) before Application.CreateForm(TDM, DM) and change LoadingForm:= TLoadingForm.Create(Application) to LoadingForm:= TLoadingForm.Create(nil). This is because delphi set first form created with Application as owner to main form of application. When this main form is closed - app is closed and I think that MainForm is real main form in your case.


begin
  //ReportMemoryLeaksOnShutdown := DebugHook <> 0;
  Application.Initialize;
  LoadingForm:= TLoadingForm.Create(nil);  //changed
  LoadingForm.show;
  LoadingForm.update;
  FV := TrsFileVersion.Create;
  Stringlist:= TStringlist.create;
  Stringlist.LoadFromFile(VersionFile);
  if not CheckPreviousInstance.RestoreIfRunning(Application.Handle, 1) then
  begin
    If FV.GetFileVersion('acsimanufacturing.exe') then begin
      If FV.Version < Stringlist.Strings[0] then begin
        Showmessage('Incorrect program version!  Please click "Next" when prompted to install newer version.');
        WinExec('\\AUTCON2\SYS6\drivers\custom applications\acsimanufacturing\setup.exe', 1);
        Sleep(350);
      end else begin
        Application.Title := 'ACSI Manufacturing';
        Application.CreateForm(TMainForm, MainForm);   //moved     
        Application.CreateForm(TDM, DM);        
        Application.CreateForm(TFormViewResults, FormViewResults);
        Application.CreateForm(TBarcodeLabelsForm, BarcodeLabelsForm);
    //  Application.CreateForm(TFormEditVerifySubassemblyParts, FormEditVerifySubassemblyParts);
        Application.CreateForm(TFormNewEmployee, FormNewEmployee);
        Application.CreateForm(TFormSystemNumberSplit, FormSystemNumberSplit);
        Application.CreateForm(TAttachedFileDesignationForm, AttachedFileDesignationForm);
        Application.CreateForm(TSetPricedPartsForm, SetPricedPartsForm);
        Application.CreateForm(TSendEmailForm, SendEmailForm);
        Application.CreateForm(TCloneFOForm, CloneFOForm);
        Application.CreateForm(TPrintForm, PrintForm);
        //Application.CreateForm(TFormPrintLandscape, FormPrintLandscape);
        LoadingForm.Hide;
        Application.Run;
      end;
    end;
  end;
  FV.Free;
  Stringlist.Free;
  LoadingForm.Free;
end.

Open in new window


...as result of these changes there is one thing - in create event of main form (MainForm) you must not use something from data module (DM) but rather in OnShow event.
0
answerfreakAuthor Commented:
@sinisav:
I did what you said, and yes I did have to modify my onCreate event for the MainForm a little, and put that code from that event into my onShow.  Everything seem to be running ok.  If it works without fail, I'll be awarding you.  Thanks so much!

I have to leave the office for personal reasons today, so I won't respond until Monday.  Have a great weekend!
0
Geert GOracle dbaCommented:
on a side note
Datamodules do not get set as a main form, even when loaded first

if you want to compare the version ... 2 strings, then why not offload to a string
var 
   FV : TrsFileVersion;
   Stringlist : TStringlist;  
   Ver1, Ver2: string;
begin
  //ReportMemoryLeaksOnShutdown := DebugHook <> 0;
  Ver1 := '1.0.0.0';
  Ver2 := 'missing';
  Application.Initialize;
  LoadingForm:= TLoadingForm.Create(nil);  //changed
  try
    LoadingForm.show;
    LoadingForm.update;
    if not CheckPreviousInstance.RestoreIfRunning(Application.Handle, 1) then
    begin
      Stringlist := TStringlist.create;
      try
        Stringlist.LoadFromFile(VersionFile);
        Ver1 := StringList[0];
      finally
        StringList.Free;
      end;
      FV := TrsFileVersion.Create;
      try
        If FV.GetFileVersion('acsimanufacturing.exe') then 
          Ver2 := FV.Version;
      finally
        FV.Free;
      end;
      If  Ver2 < Ver1 then 
      begin
        Showmessage('Incorrect program version!  Please click "Next" when prompted to install newer version.');
        WinExec('\\AUTCON2\SYS6\drivers\custom applications\acsimanufacturing\setup.exe', 1);
        Sleep(350);
      end 
        else 
      begin
        Application.Title := 'ACSI Manufacturing';
        Application.CreateForm(TMainForm, MainForm);   //moved     
        Application.CreateForm(TDM, DM);        
        Application.CreateForm(TFormViewResults, FormViewResults);
        Application.CreateForm(TBarcodeLabelsForm, BarcodeLabelsForm);
    //  Application.CreateForm(TFormEditVerifySubassemblyParts, FormEditVerifySubassemblyParts);
        Application.CreateForm(TFormNewEmployee, FormNewEmployee);
        Application.CreateForm(TFormSystemNumberSplit, FormSystemNumberSplit);
        Application.CreateForm(TAttachedFileDesignationForm, AttachedFileDesignationForm);
        Application.CreateForm(TSetPricedPartsForm, SetPricedPartsForm);
        Application.CreateForm(TSendEmailForm, SendEmailForm);
        Application.CreateForm(TCloneFOForm, CloneFOForm);
        Application.CreateForm(TPrintForm, PrintForm);
        //Application.CreateForm(TFormPrintLandscape, FormPrintLandscape);
        LoadingForm.Hide;
        Application.Run;
      end;
    end;
  finally
    LoadingForm.Free;
  end;
end.

Open in new window


it's all a matter of scope
The stringlist is only needed to get the version from a file
The FV is only needed to get the exe file version
Limiting an object to the scope it's used for always helps in avoiding memory leaks

string variables in the .dpr source are not considered as objects
0
answerfreakAuthor Commented:
The program has become even more unstable.  I will go ahead and award points now, because I was given direction, that hopefully will lead me to debug the program completely.  But due to time constraints with other projects, I just haven't had the time to work through all the issues thus far.

Thanks to everyone for their help!

Brent
0
answerfreakAuthor Commented:
Since the experts here have helped me to understand how to troubleshoot using MadExcept, I am awarding points, and closing this posting, even though my problem(s) persist.  I don't know if Delphi XE2, is unstable, or if it's the PDAC, RAVE, or what, but I may have to do a bit more testing before I can determine what is causing all of the problems.

Thanks to all who chimed in, and tried to help!
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.