Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.51 MB
Время: 0.021 c
14-5835
blackman
2003-02-13 17:24
2003.03.03
Не понимаю я этого кода


14-5774
Таня
2003-02-13 07:37
2003.03.03
О музыке


14-5744
LazorenkoX
2003-02-12 13:49
2003.03.03
Программы для программы


7-5901
Disraptor
2003-01-02 19:30
2003.03.03
Народ подскажите как записать в реестрее двоичное значение...


9-5361
Tugrik
2002-09-24 11:54
2003.03.03
Z-Buffer