Форум: "Сети";
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];
ВнизДоспуп к свойтвам Internet Explorer (СОМ) при работе с SHTTP, а работа с СОМ при использовании потоков Найти похожие ветки
← →
Digitman (2002-01-16 17:52) [5]>> пример когда выдает ошибку:
procedure TForm1.SpeedButton2Click(Sender: TObject);
>> // отдельно создается обект
// в ОСНОВНОМ ПОТОКЕ он создается - это ты понимаешь ?
begin
V := CreateOleObject("InternetExplorer.Application.1");
V.Visible := true;
end;
>> после этого создается поток и запускается на выполнение
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
SecondProcess := TSub.Create(false);
end;
>> и если этому потоку принадлежит функция
// не ПОТОКУ ПРИНАДЛЕЖИТ ФУНКЦИЯ, а ОБЪЕКТ-ПОТОК реализует метод EXECUTE
procedure TSub.Execute;
begin
CoInitialize(nil); // это зачем ? разве OLE-объект создается в доп.потоке ??
try
form1.label2.caption := V.Visible; // выдается ошибка
// 1. ошибка ?? ну, разумеется !! асинхронные обращение к объектам-наследникам TWinControl из доп.потоков недопустимы !!
// на то есть метод TThread.Synchronize()
// 2. объект V создан в осн.потоке, а манипулируешь им в другом доп.потоке. Для объекта IE.Application это недопустимо, как и для многих распространенных OLE-серверов от MS (имеющих ThreadingModel = Apartment)
finally
CoUninitialize(); // а это зачем ?
Suspend(); // а здесь что делаешь ?
Terminate(); // а здесь ?
Destroy(); // а здесь ?
// комментируй свои мысли. полным-полно несуразиц в этих 3-х строчках
end;
end;
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c