Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.03.03;
Скачать: [xml.tar.bz2];

Вниз

Не могу освободить ресурсы.   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.007 c
1-5477
maxim2
2003-02-18 09:33
2003.03.03
Как зарегестрировать ActiveX программно


14-5808
Lord Warlock
2003-02-13 09:39
2003.03.03
...Я рыдал...!!!


7-5896
s.ts
2002-07-04 20:47
2003.03.03
Изменение/добавление/удаление ресурсов из PE.


9-5369
][рюн
2002-09-29 20:33
2003.03.03
В чем лучше хранить спрайты? (DelphiX)


8-5669
JibSkeart
2002-11-21 18:06
2003.03.03
Кто нибуть работал с частичками(particles) в DirectX





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский