Конференция "Основная" » правильное закрытие документа Excel [D7, WinXP]
 
  • Xmen (13.03.08 14:45) [0]
    Привет мастерам!
    Как правильно закрыт документ Excel?
    Имею такой код(урезан)

    exl:=CreateOleObject('Excel.Application');
    Workbook:=exl.Application.WorkBooks.Add(ExtractFilePath(Application.ExeName)+'Hisobot.xls');
    Sheet:=WorkBook.WorkSheets[i];
    Sheet.Cells(5+n,2):=qrMonitoring.fieldbyname('name').AsString;
    Sheet.Cells(5+n,3):=qrMonitoring.fieldbyname('client_acc').AsVariant;
    Sheet.Cells(5+n,4):=qrMonitoring.fieldbyname('remainder').AsVariant;
    exl.Application.Visible:=True;

    пишу и открываю
    и показываю но после закрытия еxcel.exe остаётся в памяти.
    если сделаю

    exl.Application.Quit;

    то спрашывает о сохранение.
    Как правильно поступать?
  • clickmaker © (13.03.08 14:52) [1]

    > то спрашывает о сохранение

    DisplayAlerts := false; ?
  • Xmen (13.03.08 14:57) [2]
    Сделал но он сразу закрыл Excel не успел поработат.
    Мне нужно чтобы я сам закрывал и чтобы не оставался в памяти.
  • clickmaker © (13.03.08 15:01) [3]

    > он сразу закрыл Excel

    кто "он"?
  • Xmen (13.03.08 15:53) [4]
    после долгих работ я уже начел с ним обшатся :) то есть со своей прогой. Он для меня стал родным.
    Если без щуток.
    Программа открывает еxcelовский документ и я  работаю с документом. после его закрытя, в памяти все равно остается, даже если я закрываю свою программу. (извеняюсь за ощибки для меня русский не родной)
  • Xmen (13.03.08 15:55) [5]
    после долгих работ я уже начел с ним обшатся :) то есть со своей прогой. Он для меня стал родным.
    Если без щуток.
    Программа открывает еxcelовский документ и я  работаю с документом. после его закрытя, в памяти все равно остается, даже если я закрываю свою программу. (извеняюсь за ощибки для меня русский не родной)
  • clickmaker © (13.03.08 15:58) [6]
    попробуй еще Workbook.Saved := true; перед Quit
  • Xmen (13.03.08 16:00) [7]
    Я сделал так
    procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    var exl:OleVariant;
       WorkBook, Sheet : Variant;
    begin
     exl:=CreateOleObject('Excel.Application');
     if not VarIsEmpty(exl) then
     begin
       exl.Quit;
       exl:=Unassigned;
     end;
    end;

    Это правильно?
 
Конференция "Основная" » правильное закрытие документа Excel [D7, WinXP]
Есть новые Нет новых   [134483   +44][b:0][p:0]