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

Вниз

Помогите!!! 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.05 c
1-1172164213
Kolan
2007-02-22 20:10
2007.04.22
Как преобразовать юникод строку «%D0%9C%» в читаемые символы?


2-1175437703
Abcdef123
2007-04-01 18:28
2007.04.22
Как в DBGrid "поймать" событие OnExit ячейки?


6-1161955996
Free_Breeze
2006-10-27 17:33
2007.04.22
Вопрос по фреймам


15-1175096504
Галинка
2007-03-28 19:41
2007.04.22
Что из ужастиков новенькое есть


2-1175682244
Officeman
2007-04-04 14:24
2007.04.22
Цветные делений в ProgressBar1





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский