Einzelnen Beitrag anzeigen

Benutzerbild von Chemiker
Chemiker
Online

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Excel in einer Komponente einbinden generell machbar?

  Alt 26. Jun 2009, 19:51
Hallo BAMatze,

ich habe jetzt nicht die Komponente in jede Einzelheit durchgearbeitet, was mir aber aufgefallen ist:

im Destructor gibt’s Du z.B.:

Delphi-Quellcode:
Destructor TDatenbankoberflaeche.Destroy;
begin
  // Sind die nicht schon freigegeben ????????
  FExcelWorkbook.Close(true); // Speichert die Änderungen in Excel
  FExcelWorksheet.Free;
  FExcelWorkbook.Free;
  FExcelApplication.Free;
und in der Procedure:

Delphi-Quellcode:
 procedure TDatenbankoberflaeche.ExcelDatenbank_anlegen;
var sparentroot: string;
    iUserLCID: integer;
begin
  sparentroot := ExtractFilePath(ParamStr(0));
  FsDatenbankPfad := sparentroot;
  iUserLCID := GetUserDefaultLCID;
  FExcelApplication := TExcelApplication.Create(Nil);
  FExcelApplication.Workbooks.Add(emptyparam, iUserLCID);
  FExcelWorkbook := TExcelWorkbook.create(Nil);
  FExcelWorkbook.ConnectTo(FExcelApplication.ActiveWorkbook as ExcelWorkbook);
  FExcelWorkbook.Worksheets.Add(emptyParam, emptyParam, emptyParam, emptyParam, iUserLCID);
  FExcelWorksheet := TExcelWorksheet.create(Nil);
  FExcelWorksheet.ConnectTo(FExcelWorkbook.ActiveSheet as ExcelWorksheet);
  FExcelWorksheet.Cells.Item[3,1] := 'Lfd. Nr.';
  FExcelWorksheet.Cells.Item[3,2] := 'Name';
  FExcelWorksheet.Cells.Item[3,3] := 'Hüllenlänge';
  FExcelWorksheet.Cells.Item[3,4] := 'Hüllendurchmesser';
  FExcelWorksheet.Cells.Item[3,5] := 'Gap';
  FExcelWorksheet.Cells.Item[3,6] := 'li Spleißpos';
  FExcelWorksheet.Cells.Item[3,7] := 're Spleißpos';
  FExcelWorkbook.Close(true, sparentroot + ExcelDatenbankName, emptyParam, iUserLCID); // Speichert die Änderungen in Excel }

  // im Destructor werden sie noch mal freigegeben?????
  FExcelWorksheet.Free;
  FExcelWorkbook.Free;
  FExcelApplication.Free;
end;
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat