Einzelnen Beitrag anzeigen

ZYLAGON

Registriert seit: 11. Nov 2015
50 Beiträge
 
Delphi 10.3 Rio
 
#1

Excel-Automation Arbeitsspeicher

  Alt 2. Mai 2018, 14:06
Hallo zusammen,

warum zeigt der Taskmanager nach Beendigung der erzeugten Excelinstanz keine Änderung des Arbeitsspeichers an?

Folgendes mit XE3 erzeugtes Minimalprogramm:

Delphi-Quellcode:
unit Test_EXCEL_OLE;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
    fExcel:Variant;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses ComObj;

procedure TForm1.Button1Click(Sender: TObject);
begin
  fExcel:=CreateOleObject('Excel.Application');
  fExcel.Application.SheetsInNewWorkBook:=3;
  fExcel.Workbooks.Add;

  fExcel.Sheets[1].Name := 'Test';
  fExcel.Visible:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if VarType(FExcel)<>varEmpty then
    begin
      fExcel.Quit;
      fExcel:=unassigned;
    end;
end;

end.
Starte ich die Anwendung, zeigt der Taskmanager eine Belegung von 1.740K Arbeitsspeicher an.
Wird Button 1 gedrückt (zum Erstellen der Instanz mit sichtbarem Worksheet), zeigt der Taskmanager eine Belegung von 1.960K Arbeitsspeicher an.
Wird Button 2 gedrückt (Instanz schließen mit Quit und unassigned), bleibt der angezeigte Arbeitsspeicher ungefähr gleich (1.924K), hätte aber erwartet, den Ausgangswert von 1.740K wieder zu erreichen.

Kann jemand helfen?


VG ZYL
  Mit Zitat antworten Zitat