Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.22;
Скачать: CL | DM;

Вниз

Помогите!!! Error - Не был произведен вызов CoInitialize   Найти похожие ветки 

 
SamProf ©   (2007-02-28 00:31) [0]

Доброго вечера, мастера! Прошу помощи, бо уже не можу....
Суть проэкта: проэкт на IntraWeb, на нём 2 кнопочки, при нажати  
1 кнопочку) мы соединяемся посредством OLE к 1С:Предприятию
2 кнопочку) мы получаем список товаров и выводим из в список.... Итак вот модуль:
unit Unit1;

interface

uses
 Classes, SysUtils, IWAppForm, IWApplication, IWColor, IWTypes, Controls,
 IWVCLBaseControl, IWBaseControl, IWBaseHTMLControl, IWControl, IWCompButton,
 ComObj, Variants,ActiveX, IWHTMLControls;

type
 TIWForm1 = class(TIWAppForm)
   IWButton1: TIWButton;
   IWButton2: TIWButton;
   IWList1: TIWList;
   procedure IWButton2Click(Sender: TObject);
   procedure IWButton1Click(Sender: TObject);
 public
 end;
var
 C1: Olevariant;
implementation
{$R *.dfm}
procedure TIWForm1.IWButton1Click(Sender: TObject);
begin
 C1 := createoleobject("V1CEnterprise.Application");
 C1.initialize(c1.rmtrade, "/DD:\PROGRAM\DAKO\1с\", "");
end;

procedure TIWForm1.IWButton2Click(Sender: TObject);
var
 t:OleVariant;
begin
 IWList1.Clear;
 t:=C1.CreateObject("Справочник.Товары");
 t.selectitems(1);
 while t.getitem(1)=1 do
   begin
   IWList1.Items.Add(t.getAttrib("Наименование"));
   end;
end;

initialization
 TIWForm1.SetAsMainForm;
end.


Так вот при нажатии на первую кнопочку мы имеем ошибку:
Не был произведен вызов CoInitialize.
Пошаря в просторах интернета я нашёл, что надо писать   CoInitializeEx(nil,COINIT_APARTMENTTHREADED); и получилось вот что:procedure TIWForm1.IWButton1Click(Sender: TObject);
begin
 CoInitializeEx(nil,COINIT_APARTMENTTHREADED);
 C1 := createoleobject("V1CEnterprise.Application");
 C1.initialize(c1.rmtrade, "/DD:\PROGRAM\DAKO\1с\", "");
end;
и ура - заработало, но при нажатии на вторую кнопочку я получаю эррор:"Объект не подключен к серверу"....
я понял, что каждое нажатие кнопочки - в отдельном потоке и в этом проблема...

Много текста получилось.... Посоветуйте чтонить!!! Пожалуйста!!!!


 
DrPass ©   (2007-02-28 01:34) [1]


> я понял, что каждое нажатие кнопочки - в отдельном потоке
> и в этом проблема...

Правильно понял
Ну так и пиши программу с учетом этого -
CoInitialize(nil);
C1 := createoleobject("V1CEnterprise.Application");
C1.initialize(c1.rmtrade, "/DD:\PROGRAM\DAKO\1с\", "");
IWList1.Clear;
t:=C1.CreateObject("Справочник.Товары");
t.selectitems(1);
while t.getitem(1)=1 do
  begin
  IWList1.Items.Add(t.getAttrib("Наименование"));
  end;
CoUninitialize;


 
SamProf ©   (2007-02-28 02:23) [2]

Спасибо, но есть проблема. при каждом нажатии кнопочки будет стртовать новый экземпляр 1С, что происходит порядка .... 20-30 секунд.... а мне нужно чтобы 1С запускалась тока 1 раз и из неё черпальсь данные из разных потоков......


 
Сергей М. ©   (2007-02-28 09:01) [3]

см. GetActiveOleObject


 
SamProf ©   (2007-02-28 10:44) [4]

CoInitializeEx(nil,COINIT_APARTMENTTHREADED);
cc1:= GetActiveOleObject("V1CEnterprise.Application");
 IWList1.Clear;
 t:=Cc1.CreateObject("Справочник.Товары");
 t.selectitems(1);
 while t.getitem(1)=1 do
   begin
   IWList1.Items.Add(t.getAttrib("Наименование"));
   end;


На строчке CoInitializeEx(nil,COINIT_APARTMENTTHREADED); пишет что Операция недоступна!


 
Сергей М. ©   (2007-02-28 11:54) [5]

А у меня не пишет.

Что я неправильно делаю ?


 
SamProf ©   (2007-02-28 12:36) [6]

Я ошибся - ошибка на строчке cc1:= GetActiveOleObject("V1CEnterprise.Application");


 
Сергей М. ©   (2007-02-28 13:01) [7]


> SamProf ©   (28.02.07 12:36) [6]


Значит в этот момент нет ни одного существующего объекта указанного тобой класса


 
DrPass ©   (2007-02-28 13:24) [8]


> ошибка на строчке cc1:= GetActiveOleObject("V1CEnterprise.
> Application");

Ну так тебе и надо же проверять - делать GetActiveOleObject, и если такого активного объекта нет, то создавать новый



Страницы: 1 вся ветка

Текущий архив: 2007.04.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.06 c
6-1161968256
Rosmi
2006-10-27 20:57
2007.04.22
пакет и мак адреса


1-1172648569
serg_mds
2007-02-28 10:42
2007.04.22
Разработка OPC сервера


2-1175254920
Alex_C
2007-03-30 15:42
2007.04.22
При FreeLibrary( hDLL ) основное окно проги пропадает


15-1175174465
Knight
2007-03-29 17:21
2007.04.22
Ни у кого не завалялась модель...


2-1175502435
Grant
2007-04-02 12:27
2007.04.22
Создание exe файла