Solved

EASY QUESTION FOR POINTS

Posted on 2000-03-06
6
131 Views
Last Modified: 2010-04-04


Raymond/ rwilson,

On the code example you gave to me before, how can I have a window pop-up and stay on top until the other application is finished?  Then clear out and then display a message of completion?  I have tried modifing your previous example that work just fine for that purpose, but when I changed it to not use a timer I keep getting "Access Errors".  Remember that this is being used in a "DLL".  

Thanks
Tony
0
Comment
Question by:aj85
[X]
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
  • 3
  • 3
6 Comments
 
LVL 12

Expert Comment

by:rwilson032697
ID: 2589284
To do this I would make a little form showing a message (or whatever) with its form style set to fsStayOnTop.

Create and show the form before starting the process, and after the process has completed close and release it.

Perhaps you could post the code you have now with an indication where the error occurs?

Cheers,

Raymond.
0
 

Author Comment

by:aj85
ID: 2590036

Raymond,

Here is the code:

Function RunMyProcess : integer;            //TJ
 var           si  : TStartupInfo;
               pi  : TProcessInformation;
               dw1 : dword;
               MergeCmd: ANSIString;
               enabled: boolean;
        begin
        enabled:=false;
        MergeCmd:= 'C:\MSSQL7\MERGE\Merge.Exe';
        ZeroMemory(@si,sizeOf(si)); si.cb:=sizeOf(si);
        si.dwFlags:=STARTF_USESHOWWINDOW; si.wShowWindow:=SW_HIDE;
     if CreateProcess(nil,PChar(MergeCmd),nil,nil,false,0,nil,nil,si,pi)
          then begin
                   with TRunThread.Create(true) do        
                   try
                 processHandle:=pi.hProcess;          
                 processReady:=false;                
                 waitingThread:=GetCurrentThreadID;
            // Error happens here....  When I try to call the form  
                 Resume;                              
           repeat
                 Application.HandleMessage;  
           until Application.Terminated or processReady;  
                                                         
     finally Free end;
          GetExitCodeProcess(pi.hProcess,dw1);
          CloseHandle(pi.hThread);
          CloseHandle(pi.hProcess);  
          begin
          if (dw1) = 0 then
          ShowTimedMessage('Merge Successful!', 5)
          else
          if (dw1) = 1 then
          ShowTimedMessage('Merge Unsuccessful! Please retry....', 5);
      //   ShowTimedMessage('Test (exitCode='+IntToStr(dw1)+')', 5);
            end;
        end;
     end;


Thanks,
Tony



0
 
LVL 12

Expert Comment

by:rwilson032697
ID: 2590066
Tony,

Can you post the code that you use at thsi comment:

// Error happens here....  When I try to call the form  

At least I'll be able to see what is going wrong...

Cheers,

Raymond.
0
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

by:aj85
ID: 2590152


Raymond,
 
I simply call a from called frmUtil.
 
Code: frmUtil.show

I then close it later after the application has terminated.

code: frmUtil.close

I know this is where the error is, I am just not sure why?

Thanks
0
 
LVL 12

Accepted Solution

by:
rwilson032697 earned 100 total points
ID: 2590291
It sounds like frmUtil has not been created. Check it is autocreated in the project options or you are creating it before showing it with the frmUtil.show .

Cheers,

Raymond.
0
 

Author Comment

by:aj85
ID: 2607205


Thanks Raymond.
0

Featured Post

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!

Question has a verified solution.

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

Suggested Solutions

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an antispam), the admini…

730 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