fsScript.Clear
Вот код скрипта
var
Excel, Book, Sheet: Variant;
begin
Excel := CreateOLEObject('Excel.Application');
Book := Excel.WorkBooks.Open('file.xls');
Sheet := Book.ActiveSheet;
Sheet := nil;
Book.Close;
Book := nil;
Excel := nil;
end.
Поле запуска на исполнение (уже есть откопилированный)
FileStream:= TFileStream.Create(FmEditorRun.ExeFileName, fmOpenRead);
FsScript.SetILCode(FileStream);
FileStream.Free;
FsScript.Execute;
Всегда производиться
fsScript.Clear;
В прошлых версиях из процессов в данном случае исчезал Excel
Теперь же вообще остаётся - сколько раз выполнишь - столько и будет экземпляров
var
Excel, Book, Sheet: Variant;
begin
Excel := CreateOLEObject('Excel.Application');
Book := Excel.WorkBooks.Open('file.xls');
Sheet := Book.ActiveSheet;
Sheet := nil;
Book.Close;
Book := nil;
Excel := nil;
end.
Поле запуска на исполнение (уже есть откопилированный)
FileStream:= TFileStream.Create(FmEditorRun.ExeFileName, fmOpenRead);
FsScript.SetILCode(FileStream);
FileStream.Free;
FsScript.Execute;
Всегда производиться
fsScript.Clear;
В прошлых версиях из процессов в данном случае исчезал Excel
Теперь же вообще остаётся - сколько раз выполнишь - столько и будет экземпляров
Комментарии
procedure TfsScript.Clear;
begin
while FItems.Count > 0 do
begin
FItems.Objects[0].Free;
FItems.Delete(0);
end;
FStatement.Clear;
FUnitLines.Clear;
end;
Где FItems - TStringList
Вот по старому
procedure TfsScript.Clear;
begin
while FItems.Count > 0 do
begin
TObject(FItems[0]).Free;
FItems.Delete(0);
end;
FStatement.Clear;
FUnitLines.Clear;
end;
где FItems - TList
constructor TfsScript.Create(AOwner: TComponent);
begin
inherited;
FItems := TStringList.Create;
FItems.Sorted := True;
// add
FItems.Duplicates := dupAccept;
...
Просто сказка теперь, помогло.