Текущий архив: 2003.03.03;
Скачать: CL | DM;
ВнизНе могу освободить ресурсы. Найти похожие ветки
← →
Weare (2003-02-20 11:13) [0]День добрый уважаемые мастера.
Вот недавно бился над проблемой высвобождения ресурсов после работы с Bmp. А теперь вот не могу добиться, чтобы освобождалась память после работы с Excel"ем.
Подскажите, плз, в чем тут дело?
procedure TForm1.Button1Click(Sender: TObject);
var vExcel: Variant;
begin
vExcel := CreateOLEObject("Excel.Application");
vExcel.WorkBooks.Open("D:\My_Files\My.xls",True);
...
vExcel.Quit;
end;
После отработки этого кода захожу в Диспетчер задач и там как ни в чеи не бывало висит в процессах Excel. Сколько я не нажму на кнопку, столько раз он там появится. И приходится вручную завершать процесс.
Как это убрать???
← →
han_malign (2003-02-20 11:19) [1]vExcel:=nil;//неявное выполнение Release
- наверное...
← →
Weare (2003-02-20 11:24) [2]Вернее null, делал, не помогает!!!
← →
Anatoly Podgoretsky (2003-02-20 11:26) [3]unassigned не подойдет?
← →
Weare (2003-02-20 11:32) [4]
>to Anatoly Podgoretsky © (20.02.03 11:26)
Только что попробовал - не помогло!!!
← →
Weare (2003-02-20 11:56) [5]Мастера, разве никто не знает в чем тут дело?
Вот так всегда, ведь с Bmp тоже помощи не дождался, пришлось выкручиваться :(
← →
Игорь Шевченко (2003-02-20 12:08) [6]
E := CreateOleObject("Excel.Application");
E.WorkBooks.open("D:\test.xls",true);
..........................
E.Quit;
E := NULL;
← →
Dms (2003-02-20 12:14) [7]...
E.Quit;
E:=Unassigned;
у меня работает
← →
Weare (2003-02-20 12:47) [8]
> Игорь Шевченко ©
> Dms
Ребята, не знаю в чем дело, но у меня не работает!!! Вы под W2K пробовали?
Я уже начинаю думать, может дело в Дельфях?
← →
Игорь Шевченко (2003-02-20 12:51) [9]Weare © (20.02.03 12:47)
Дело в коде программы.
Мой вариант работает под win2k/winxp/winnt/win98
← →
Dms (2003-02-20 13:19) [10]
XL:=CreateOLEObject("Excel.Application");
XL.Visible:=False;
XL.Workbooks.Add;
XL.Workbooks[1].Worksheets[1].Name:="Склад "+DateToStr(Date);
...
XL.Workbooks[1].SaveAs(fName);
XL.Quit;
XL:=Unassigned;
← →
Weare (2003-02-20 14:02) [11]
> Игорь Шевченко © (20.02.03 12:51)
Почему в коде, я же его выше привел - он такой как и ваши кода.
Вот полный код:
procedure TForm1.Button1Click(Sender: TObject);
var k: integer;
s,s1: string;
vExcel: Variant
begin
vExcel := CreateOLEObject("Excel.Application");
vExcel.WorkBooks.Open("D:\My_Files\my.xls",false);
Table1.Open;
for k:=1 to 18 do
begin
Table1.Append;
Table1Pole1.Value:=vExcel.WorkBooks[1].WorkSheets[1].Cells[k,1];
Table1Pole2.Value:=vExcel.WorkBooks[1].WorkSheets[1].Cells[k,2];
s:=vExcel.WorkBooks[1].WorkSheets[1].Cells[k,7];
s1:=vExcel.WorkBooks[1].WorkSheets[1].Cells[k,8];
if (s="
← →
Игорь Шевченко (2003-02-20 14:05) [12]Попробуй:
begin
vExcel := CreateOLEObject("Excel.Application");
try
vExcel.WorkBooks.Open("D:\My_Files\my.xls",false);
.....
finally
vExcel.Quit;
vExcel:=Unassigned;
end;
← →
Weare (2003-02-20 14:20) [13]Пробовал - не помогает.
Я тут думаю, что этими методами мы ведь только переменную освобождаем(вернее убиваем ее ссылку). А мне нужно убить то, на что она ссылается - само приложение?
← →
Dms (2003-02-20 14:48) [14]Может дело в том, что ты документ не сохраняешь, вот он и остается висеть ? Смысла мало, но это ж Microsoft ...
← →
Weare (2003-02-20 15:06) [15]Попробовал его еще и сохранить в тот же файл перед Quit, не помогло, хотя и спросило заменить ли файл.
Может мне немного уточнить, дело в том, что самого окна Excel"я не видно, Excel виден только в диспетчере задач да и то только в процессах, на закладке приложения его не видно. И еще, когда я таким образом открываю файл с паролем, то загружается Excel и покзывается окошко для ввода пароля, после его ввода Excel закрывается и, естественно, продолжает висеть в процессах.
← →
Weare (2003-02-20 17:01) [16]
>to Игорь Шевченко © (20.02.03 12:08)
Cкажи, а у тебя так работает, это ты под W2K запускал.
← →
Игорь Шевченко (2003-02-20 17:02) [17]Weare © (20.02.03 17:01)
Конечно
← →
Weare (2003-02-20 17:29) [18]Блин, а что же тогда у меня такое???
Люди добрые, помогите, плиз!!!!!!!!!
Страницы: 1 вся ветка
Текущий архив: 2003.03.03;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.008 c