Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
ВнизРабота с Excel в потоке Найти похожие ветки
← →
Вася567 (2006-05-06 10:02) [0]Проблема вот в чем: создаю поток.
type
TMyThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
end;
implementation
procedure TMyThread.Execute;
var
Excel: Variant;
begin
Excel := CreateOleObject("Excel.Application");
end;
Вот так его вызываю:procedure TForm1.Button2Click(Sender: TObject);
var
MyThread: TMyThread;
begin
MyThread := TMyThread.Create(True);
MyThread.Resume;
end;
Не работает строка Excel := CreateOleObject("Excel.Application");
Причем никаких ошибок не выдает. Просто выходит из процедуры.
Хотя безо всяких поток все отлично работает:procedure TForm1.Button1Click(Sender: TObject);
var
Excel: Variant;
begin
Excel := CreateOleObject("Excel.Application");
end;
Можно ли работать с Excel"ем в потоке?
← →
balepa © (2006-05-06 10:21) [1]CoInitialization в ActivX
CoUnitialization после завершения работы с Excel
← →
balepa © (2006-05-06 10:25) [2]Поправлюся
CoInitialize;
CoUninitialize
← →
Вася567 (2006-05-06 10:52) [3]Здорово! Работает! Спасибо.
А еще я нашел теорию по этому вопросу, если кому надо
http://podgoretsky.com/ftp/Docs/Delphi/DX/COMmodel.html
← →
Вася567 (2006-05-06 12:03) [4]Рано я обрадовался.
Возникли еще две проблемы
1. В потоке не работает функция ShowMessage.
2. Если включены строки CoInitialize и CoUninitialize, то не запускаются другие медоты потока с помощью Synchronize.
← →
balepa © (2006-05-06 12:59) [5]
> Вася567 (06.05.06 12:03) [4]
> Рано я обрадовался.
> Возникли еще две проблемы
> 1. В потоке не работает функция ShowMessage.
Пользуйся MessageBox
> 2. Если включены строки CoInitialize и CoUninitialize, то
> не запускаются другие медоты потока с помощью Synchronize.
Поясните плз. А лучше кусок кода
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.013 c