Q&A

  • 엑셀인데요. 종료가 안되요 에러가 어디인지 보아주세요
procedure TFrmMain.SpeedButton2Click(Sender: TObject);
begin
   OpenDialog1.Filter := 'xls files(*.xls)|*.xls';
   if OpenDialog1.Execute then
       FName := OpenDialog1.filename;

   if FName = '' then
       exit;

   try
       XLApp:= CreateOleObject('Excel.Application');
   except
       ShowMessage('엑셀이 설치되어있지 않습니다.');
       exit;
   end;

   XLApp.WorkBooks.Open(OpenDialog1.FileName);
   sheetcnt := XLApp.workbooks.count ;
   Sheet_Name := XLApp.Workbooks[sheetcnt].WorkSheets[1].Name ;
   Sheet := XLApp.WorkBooks[sheetcnt].WorkSheets[sheet_name];
   wnd := findwindow('XLMAIN', nil );
   Windows.SetParent(wnd, Handle); //Panel1.Handle
   SetWindowPos( wnd, 0 , 0, -26, Panel1.clientwidth, Panel1.clientheight , SWP_NOZORDER or SWP_SHOWWINDOW );
   XLApp.Visible := True;

end;

//********* 위는 엑셀실행 *********


procedure TFrmMain.FormDestroy(Sender: TObject);
begin
  if not VarIsEmpty(XLApp) then begin
    XLApp.WorkBooks.Close;
    XLApp.DisplayAlerts := False;  // Discard unsaved files....
    XLApp.Quit;
  end;
end;  

//**** 위는 폼종료인데..


엑셀을 실행하고 작업을 다한다음에 폼을 종료하면 엑셀이 종료가 되어야하느데
계속 살아있습니다.

원인좀 알려주세요

중간에 죽이고 다시실행하면 다른엑셀이 실행되어.. 다중에는 여러개의 엑셀 프로세서가 살아있습니다.


0  COMMENTS