Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/27: Рейтинг темы: голосов - 27, средняя оценка - 4.70
1 / 1 / 0
Регистрация: 04.12.2008
Сообщений: 16
1

CoInitialize и компоненты на форме

04.12.2008, 08:41. Показов 5154. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите разобраться:

добавляю некоторые компоненты на форму (например TADOConnection или TWebBrowser).
При компиляции возникает эксепшн "Не был произведен вызов Coinitialize",
хотя явно сделал при создании и уничтожении формы следующее:
C++
1
2
3
4
5
6
7
8
9
void __fastcall TMainForm::FormCreate(TObject *Sender){
 
    CoInitialize( COINIT_MULTITHREADED );
}
 
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormDestroy(TObject *Sender){
    CoUninitialize();
}
куда копать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2008, 08:41
Ответы с готовыми решениями:

Почему на форме не отображаются компоненты?
Делал проект на C++ Builder. Около недели его не открывал. Сейчас открыл, продолжаю его делать....

Coinitialize и ADOConnection;
Всем доброго дня! Одну вещь не понимаю, в Form Create делаю CoInitialize(NULL), все нормально...

Не был произведен вызов CoInitialize при использовании CppWebBrowser
В программе 2 формы: 1 - основная программа 2 - заставка, пока проводится подготовка к работе...

Компоненты на форме
Всем привет. Как сделать чтобы компоненты на форме могли растягиваться на весь экран?

4
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
04.12.2008, 09:21 2
покажи код, что ты там такое любопытное наваял
0
1 / 1 / 0
Регистрация: 04.12.2008
Сообщений: 16
04.12.2008, 14:38  [ТС] 3
Да вроде ни чего особенного.
CodeGear™ C++Builder® 2007 R2 Version 11.0.2902.10471
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
 
#include <stdio.h>
#include "Main.h"
#include "dbUnit.h"
 
 
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "shdocvw_ocx"
#pragma resource "*.dfm"
 
TMainForm *MainForm;
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ButtonOpenClick(TObject *Sender)
{
 
 
    if (OpenDialogResults->Execute()){
 
        AnsiString          FileName_Export;
        EditFileName->Text  = OpenDialogResults->FileName;
        TAnalysisPCR *Anss  = new TAnalysisPCR;
 
        sBar->Panels->Items[0]->Text = "открывается протокол";
        Application->ProcessMessages();
 
        Anss->Open_Result(
                OpenDialogResults->FileName.c_str() );
 
        sBar->Panels->Items[0]->Text = "преобразование в xml";
        Application->ProcessMessages();
 
 
        if (Analisis)
            delete  Analisis;
 
 
        Analisis        = Anss;
        FileName_Export = ChangeFileExt(OpenDialogResults->FileName, ".xml");
 
        Analisis->Serialize( FileName_Export.c_str() );
        sBar->Panels->Items[0]->Text = "xml создан";
        Application->ProcessMessages();
 
        docXML->LoadFromFile( WideString(FileName_Export) );
        TransformXML( Sender );
    }
}
 
//---------------------------------------------------------------------------
void    __fastcall TMainForm::TransformXML(TObject *Sender){
 
    try{
        XSLpp->XMLData  =   docXML;
        XSLpp->LoadFromFile( WideString(edXsl->Text) );
 
    }catch( Exception &e ){
    }
}
 
 
void __fastcall TMainForm::FormClose(TObject *Sender, TCloseAction &Action){
 
    if ( Analisis )
        delete Analisis;
 
}
//---------------------------------------------------------------------------
 
 
void __fastcall TMainForm::FormDestroy(TObject *Sender)
{
    XSLpp->Free();
    docXML->Free();
    CoUninitialize();
}
//---------------------------------------------------------------------------
 
 
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
    CoInitialize( COINIT_MULTITHREADED );
}
//---------------------------------------------------------------------------
 
 
void __fastcall TMainForm::DBGrid1DblClick(TObject *Sender)
{
    DataModule1->ADODataSet1->Active = false;
    DataModule1->ADODataSet1->Active = true;
}
//---------------------------------------------------------------------------
 
 
void __fastcall TMainForm::ButtonRunClick(TObject *Sender)
{
    if (!DataModule1->ADOConnection1->Connected)
         DataModule1->ADOConnection1->Connected = true;
 
 
    if (DataModule1->ADOConnection1->Connected) {
        DataModule1->ADOCommand1->CommandText =
                                    WideString( MemoSQL->Lines->Text );
 
        try{
 
            int raff;
 
            DataModule1->ADOCommand1->Execute(raff, NULL);
            DataModule1->ADODataSet1->Active = false;
            DataModule1->ADODataSet1->Active = true;
 
            sBar->Panels->Items[0]->Text = "добавлено записей: "+
                                                            AnsiString( raff );
 
        }catch( Exception &e ){
 
            ShowMessage( e.Message );
        };
    }
}
//---------------------------------------------------------------------------
 
void __fastcall TMainForm::docXMLBeforeOpen(TObject *Sender)
{
    sBar->Panels->Items[0]->Text = "загрузка xml";
    Application->ProcessMessages();
}
//---------------------------------------------------------------------------
 
void __fastcall TMainForm::docXMLAfterOpen(TObject *Sender)
{
    sBar->Panels->Items[0]->Text = "xml загружен";
    Application->ProcessMessages();
 
    MemoXML->Lines  =   docXML->XML;
    sBar->Panels->Items[0]->Text = "xml отображен";
    Application->ProcessMessages();
}
//---------------------------------------------------------------------------
 
void __fastcall TMainForm::XSLppBeforeOpen(TObject *Sender)
{
    sBar->Panels->Items[0]->Text = "загрузка шаблона";
    Application->ProcessMessages();
}
//---------------------------------------------------------------------------
 
void __fastcall TMainForm::XSLppAfterOpen(TObject *Sender)
{
 
    sBar->Panels->Items[0]->Text = "sql получен";
    Application->ProcessMessages();
 
    MemoSQL->Text = XSLpp->Content();
    sBar->Panels->Items[0]->Text = "sql отображен";
}
//---------------------------------------------------------------------------
0
1665 / 1134 / 80
Регистрация: 21.08.2008
Сообщений: 4,734
Записей в блоге: 1
09.12.2008, 10:11 4
если это приложение, то в TApplication уже зашито OleInitialize(NULL), поэтому в создании формы не надо его делать.
0
1 / 1 / 0
Регистрация: 04.12.2008
Сообщений: 16
09.12.2008, 14:33  [ТС] 5
Да, это приложение, но в нем используется еще библиотека, подключаемая статически. Может в этой библиотеке нужно CoInitialize делать?
Хотя и так все работает, если не использовать определенные компоненты.
0
09.12.2008, 14:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.12.2008, 14:33
Помогаю со студенческими работами здесь

Динамические компоненты на форме
помогите решить проблему создаю динамические компоненты на форме procedure...

Сереют компоненты на форме
Добрый день. Столкнулся со следующей проблемой. На форме использую, помимо прочего, компонент...

Компоненты на форме не отображаются
У меня есть форма1 и есть форма2. На форме1 есть некоторые компоненты (кнопка и несколько...

На форме расположите компоненты
1. На форме расположите компоненты Memo и Image, пиктограммы диалогов OpenDialog, SaveDialog и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru