Builder 6 пожалуйста help, не могу разобратся и запустить код
11.09.2019, 10:28. Показов 633. Ответов 1
1) Модуль проекта
| 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
| //---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("MainUnit.cpp", MainForm);
USEFORM("DataBaseDataModuleUnit.cpp", DataBaseDataModule); /* TDataModule: File Type */
USEFORM("DialogsDataModuleUnit.cpp", DialogsDataModule); /* TDataModule: File Type */
USEFORM("PreviewUnit.cpp", PreviewForm);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TMainForm), &MainForm);
Application->CreateForm(__classid(TDataBaseDataModule), &DataBaseDataModule);
Application->CreateForm(__classid(TDialogsDataModule), &DialogsDataModule);
Application->CreateForm(__classid(TPreviewForm), &PreviewForm);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//--------------------------------------------------------------------------- |
|
2) Модуль главной формы
| 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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
| //---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "MainUnit.h"
#include "DataBaseDataModuleUnit.h"
#include "DialogsDataModuleUnit.h"
#include "FunctionsUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TMainForm *MainForm;
//---------------------------------------------------------------------------
AnsiString DoubleSlash (AnsiString str);
void DataBaseConnection (AnsiString Path);
void ManufacturerButtonVisibleFalseAddEditDeleteTruePostCancel(TButton * ManufacturerAddButton, TButton * ManufacturerEditButton, TButton * ManufacturerDeleteButton, TButton * ManufacturerPostButton, TButton * ManufacturerCancelButton);
void ManufacturerButtonVisibleTrueAddEditDeleteFalsePostCancel(TButton * ManufacturerAddButton, TButton * ManufacturerEditButton, TButton * ManufacturerDeleteButton, TButton * ManufacturerPostButton, TButton * ManufacturerCancelButton);
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormCreate(TObject *Sender)
{
MainForm->Position = poDesktopCenter;
PageControl->ActivePage = MainTabSheet;
if(!(DirectoryExists("Files")))
{
MkDir("Files");
}
if(!(DirectoryExists("Files\\DataBase")))
{
MkDir("Files\\DataBase");
}
}
//---------------------------------------------------------------------------
//-----Закрытие программы:
void __fastcall TMainForm::FormCloseQuery(TObject *Sender, bool &CanClose)
{
if(Application->MessageBox("Вы действительно хотите закрыть программу?","Выход",MB_YESNO + MB_ICONSTOP)==IDYES)
{
CanClose = True;
}
else
{
CanClose = False;
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::DataBaseFilePathOpenDialogExecuteButtonClick(
TObject *Sender)
{
if(DialogsDataModule->DataBaseFilePathOpenDialog->Execute())
{
FilePathEdit->Text = DialogsDataModule->DataBaseFilePathOpenDialog->FileName;
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::FormShow(TObject *Sender)
{
DataBaseConnection("D:\\Projects\\BuilderProjects\\CarShop\\Files\\DataBase\\CarShopDataBase.mdb");
ManufacturerDBGrid->DataSource = DataBaseDataModule->ManufacturerDataSource;
ManufacturerDBGrid->Options = TDBGridOptions(ManufacturerDBGrid->Options) >> dgEditing >> dgIndicator >> dgColumnResize;
//ManufacturerDBGrid->Columns->Add();
//ManufacturerDBGrid->Columns->Add();
//ManufacturerDBGrid->Columns->Add();
//ManufacturerDBGrid->Columns->Items[0]->FieldName = "Title_Manufacturer";
//ManufacturerDBGrid->Columns->Items[0]->Title->Caption = "Название";
//ManufacturerDBGrid->Columns->Items[1]->Title->Caption = "Количество моделей";
//ManufacturerDBGrid->Columns->Items[2]->Title->Caption = "Количество автомобилей";
ManufacturerDBGrid->Columns->Items[0]->Width = (ManufacturerDBGrid->Width - 40)/3;
ManufacturerDBGrid->Columns->Items[1]->Visible = False;
//ManufacturerDBGrid->Columns->Items[1]->Width = (ManufacturerDBGrid->Width - 40)/3;
//ManufacturerDBGrid->Columns->Items[2]->Width = (ManufacturerDBGrid->Width - 40)/3;
//DataBaseDataModule->ManufacturerADOTable->Sort = "Title_Manufacturer ASC";
ModelDBGrid->DataSource = DataBaseDataModule->ModelDataSource;
ModelDBGrid->Options = TDBGridOptions(ModelDBGrid->Options) >> dgEditing >> dgIndicator >> dgColumnResize;
ModelDBGrid->Columns->Items[0]->Width = (ModelDBGrid->Width - 40)/2;
ModelDBGrid->Columns->Items[1]->Width = (ModelDBGrid->Width - 40)/2;
ColorDBGrid->DataSource = DataBaseDataModule->ColorDataSource;
ColorDBGrid->Options = TDBGridOptions(ColorDBGrid->Options) >> dgEditing >> dgIndicator >> dgColumnResize;
ColorDBGrid->Columns->Add();
ColorDBGrid->Columns->Add();
ColorDBGrid->Columns->Items[0]->FieldName = "Type_of_Color";
ColorDBGrid->Columns->Items[1]->FieldName = "Title_Color";
ColorDBGrid->Columns->Items[0]->Title->Caption = "Тип";
ColorDBGrid->Columns->Items[1]->Title->Caption = "Название";
ColorDBGrid->Columns->Items[0]->Width = (ColorDBGrid->Width - 40)/2;
ColorDBGrid->Columns->Items[1]->Width = (ColorDBGrid->Width - 40)/2;
ClientDBGrid->DataSource = DataBaseDataModule->ClientDataSource;
ClientDBGrid->Options = TDBGridOptions(ClientDBGrid->Options) >> dgEditing >> dgIndicator >> dgColumnResize;
ClientDBGrid->Columns->Add();
ClientDBGrid->Columns->Add();
ClientDBGrid->Columns->Add();
ClientDBGrid->Columns->Add();
ClientDBGrid->Columns->Items[0]->FieldName = "Forename";
ClientDBGrid->Columns->Items[1]->FieldName = "Surname";
ClientDBGrid->Columns->Items[2]->FieldName = "Patronymic";
ClientDBGrid->Columns->Items[3]->FieldName = "Telephone_number";
ClientDBGrid->Columns->Items[0]->Title->Caption = "Фамилия";
ClientDBGrid->Columns->Items[1]->Title->Caption = "Имя";
ClientDBGrid->Columns->Items[2]->Title->Caption = "Отчество";
ClientDBGrid->Columns->Items[3]->Title->Caption = "Телефон";
ClientDBGrid->Columns->Items[0]->Width = (ClientDBGrid->Width - 40)/4;
ClientDBGrid->Columns->Items[1]->Width = (ClientDBGrid->Width - 40)/4;
ClientDBGrid->Columns->Items[2]->Width = (ClientDBGrid->Width - 40)/4;
ClientDBGrid->Columns->Items[3]->Width = (ClientDBGrid->Width - 40)/4;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::DataBaseConnectButtonClick(TObject *Sender)
{
DataBaseConnection(DoubleSlash(FilePathEdit->Text));
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ManufacturerEditButtonClick(TObject *Sender)
{
ManufacturerButtonVisibleFalseAddEditDeleteTruePostCancel(ManufacturerAddButton, ManufacturerEditButton, ManufacturerDeleteButton, ManufacturerPostBitBtn, ManufacturerCancelBitBtn);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ManufacturerDeleteButtonClick(TObject *Sender)
{
ManufacturerButtonVisibleFalseAddEditDeleteTruePostCancel(ManufacturerAddButton, ManufacturerEditButton, ManufacturerDeleteButton, ManufacturerPostBitBtn, ManufacturerCancelBitBtn);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ManufacturerDBGridTitleClick(TColumn *Column)
{ /*
if(Column->FieldName == "Название")
{
DataBaseDataModule->ManufacturerADOQuery->Active = False;
DataBaseDataModule->ManufacturerADOQuery->SQL->Clear();
if(Edit1->Text != "SELECT Title_Manufacturer AS Название, Logo FROM Manufacturer ORDER BY Title_Manufacturer ASC")
{
DataBaseDataModule->ManufacturerADOQuery->SQL->Add("SELECT Title_Manufacturer AS Название, Logo FROM Manufacturer ORDER BY Title_Manufacturer DESC");
}
else
{
DataBaseDataModule->ManufacturerADOQuery->SQL->Add("SELECT Title_Manufacturer AS Название, Logo FROM Manufacturer ORDER BY Title_Manufacturer ASC");
}
DataBaseDataModule->ManufacturerADOQuery->Open();
DataBaseDataModule->ManufacturerADOQuery->Active = True;
ManufacturerDBGrid->Columns->Items[0]->Width = (ManufacturerDBGrid->Width - 40)/3;
} */
/*if(AnsiString(DataBaseDataModule->ManufacturerADOTable->Sort) == "Title_Manufacturer ASC")
{
DataBaseDataModule->ManufacturerADOTable->Sort = "Title_Manufacturer DESC";
}
else
{
DataBaseDataModule->ManufacturerADOTable->Sort = "Title_Manufacturer ASC";
}
*/
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ManufacturerPostBitBtnClick(TObject *Sender)
{
ManufacturerButtonVisibleTrueAddEditDeleteFalsePostCancel(ManufacturerAddButton, ManufacturerEditButton, ManufacturerDeleteButton, ManufacturerPostBitBtn, ManufacturerCancelBitBtn);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ManufacturerCancelBitBtnClick(TObject *Sender)
{
ManufacturerButtonVisibleTrueAddEditDeleteFalsePostCancel(ManufacturerAddButton, ManufacturerEditButton, ManufacturerDeleteButton, ManufacturerPostBitBtn, ManufacturerCancelBitBtn);
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ManufacturerButtonClick(TObject *Sender)
{
PageControl->ActivePage = ManufacturerTabSheet;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ModelButtonClick(TObject *Sender)
{
PageControl->ActivePage = ModelTabSheet;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ClientButtonClick(TObject *Sender)
{
PageControl->ActivePage = ClientTabSheet;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::CarButtonClick(TObject *Sender)
{
PageControl->ActivePage = CarTabSheet;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::GradeButtonClick(TObject *Sender)
{
PageControl->ActivePage = GradeTabSheet;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::AccessoryButtonClick(TObject *Sender)
{
PageControl->ActivePage = AccessoryTabSheet;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::ColorButtonClick(TObject *Sender)
{
PageControl->ActivePage = ColorTabSheet;
}
//--------------------------------------------------------------------------- |
|
3) Модуль данных базы данных
| 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
| //---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "DataBaseDataModuleUnit.h"
#include "MainUnit.h"
#include "FunctionsUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TDataBaseDataModule *DataBaseDataModule;
//---------------------------------------------------------------------------
AnsiString DoubleSlash (AnsiString str);
//---------------------------------------------------------------------------
__fastcall TDataBaseDataModule::TDataBaseDataModule(TComponent* Owner)
: TDataModule(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TDataBaseDataModule::ManufacturerADOTableAfterScroll(
TDataSet *DataSet)
{
/*if(DataSet->FieldByName("Logo")->AsString != "")
{
MainForm->ManufacturerLogoImage->Picture->LoadFromFile(DoubleSlash(ExtractFilePath(Application->ExeName))+"Files"+String(Char(92))+String(Char(92))+"Pictures"+String(Char(92))+String(Char(92))+"ManufacturerLogos"+String(Char(92))+String(Char(92))+DoubleSlash(DataSet->FieldByName("Logo")->AsString));
}
else
{
MainForm->ManufacturerLogoImage->Picture->LoadFromFile(DoubleSlash(ExtractFilePath(Application->ExeName))+"Files"+String(Char(92))+String(Char(92))+"Pictures"+String(Char(92))+String(Char(92))+"ManufacturerLogos"+String(Char(92))+String(Char(92))+"nologo.bmp");
} */
}
//---------------------------------------------------------------------------
void __fastcall TDataBaseDataModule::ManufacturerADOQueryAfterScroll(
TDataSet *DataSet)
{
if(ManufacturerADOQuery->Active == True) {
if(DataSet->FieldByName("Logo")->AsString != "")
{
MainForm->ManufacturerLogoImage->Picture->LoadFromFile(DoubleSlash(ExtractFilePath(Application->ExeName))+"Files"+String(Char(92))+String(Char(92))+"Pictures"+String(Char(92))+String(Char(92))+"ManufacturerLogos"+String(Char(92))+String(Char(92))+DoubleSlash(DataSet->FieldByName("Logo")->AsString));
}
else
{
MainForm->ManufacturerLogoImage->Picture->LoadFromFile(DoubleSlash(ExtractFilePath(Application->ExeName))+"Files"+String(Char(92))+String(Char(92))+"Pictures"+String(Char(92))+String(Char(92))+"ManufacturerLogos"+String(Char(92))+String(Char(92))+"nologo.bmp");
} }
}
//--------------------------------------------------------------------------- |
|
4) Модуль данных диалогов
| C++ | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| //---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "DialogsDataModuleUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TDialogsDataModule *DialogsDataModule;
//---------------------------------------------------------------------------
__fastcall TDialogsDataModule::TDialogsDataModule(TComponent* Owner)
: TDataModule(Owner)
{
}
//--------------------------------------------------------------------------- |
|
5) Модуль функций
| 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
| //---------------------------------------------------------------------------
#pragma hdrstop
#include "FunctionsUnit.h"
#include "DataBaseDataModuleUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//---------------------------------------------------------------------------
AnsiString DoubleSlash (AnsiString str)
{
return StringReplace(str, String(Char(92)), String(Char(92))+String(Char(92)), TReplaceFlags()<<rfReplaceAll);
}
//---------------------------------------------------------------------------
void DataBaseConnection (AnsiString Path)
{
DataBaseDataModule->ADOConnection->Connected = False;
DataBaseDataModule->ADOConnection->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Path+";Persist Security Info=False";
DataBaseDataModule->ADOConnection->LoginPrompt = False;
DataBaseDataModule->ADOConnection->Connected = True;
//DataBaseDataModule->ManufacturerADOTable->Connection = DataBaseDataModule->ADOConnection;
//DataBaseDataModule->ManufacturerADOTable->TableName = "Manufacturer";
//DataBaseDataModule->ManufacturerADOTable->Active = True;
//DataBaseDataModule->ManufacturerDataSource->DataSet = DataBaseDataModule->ManufacturerADOTable;
DataBaseDataModule->ManufacturerADOQuery->Connection = DataBaseDataModule->ADOConnection;
DataBaseDataModule->ManufacturerADOQuery->Active = False;
DataBaseDataModule->ManufacturerADOQuery->SQL->Clear();
DataBaseDataModule->ManufacturerADOQuery->SQL->Add("SELECT Title_Manufacturer As Название, Logo FROM Manufacturer ORDER BY Title_Manufacturer");
DataBaseDataModule->ManufacturerADOQuery->Open();
DataBaseDataModule->ManufacturerADOQuery->Active = True;
DataBaseDataModule->ManufacturerDataSource->DataSet = DataBaseDataModule->ManufacturerADOQuery;
DataBaseDataModule->ModelADOQuery->Connection = DataBaseDataModule->ADOConnection;
DataBaseDataModule->ModelADOQuery->Active = False;
DataBaseDataModule->ModelADOQuery->SQL->Clear();
DataBaseDataModule->ModelADOQuery->SQL->Add("SELECT Manufacturer.Title_Manufacturer As [Название производителя], Model.Title_Model AS [Название модели] FROM Manufacturer, Model WHERE Manufacturer.Code_Manufacturer = Model.FK_Code_Manufacturer");
DataBaseDataModule->ModelADOQuery->Open();
DataBaseDataModule->ModelADOQuery->Active = True;
DataBaseDataModule->ModelDataSource->DataSet = DataBaseDataModule->ModelADOQuery;
DataBaseDataModule->ColorADOTable->Active = False;
DataBaseDataModule->ColorADOTable->Connection = DataBaseDataModule->ADOConnection;
DataBaseDataModule->ColorADOTable->TableName = "Color";
DataBaseDataModule->ColorADOTable->Active = True;
DataBaseDataModule->ColorDataSource->DataSet = DataBaseDataModule->ColorADOTable;
DataBaseDataModule->ClientADOTable->Active = False;
DataBaseDataModule->ClientADOTable->Connection = DataBaseDataModule->ADOConnection;
DataBaseDataModule->ClientADOTable->TableName = "Client";
DataBaseDataModule->ClientADOTable->Active = True;
DataBaseDataModule->ClientDataSource->DataSet = DataBaseDataModule->ClientADOTable;
}
//---------------------------------------------------------------------------
void ManufacturerButtonVisibleFalseAddEditDeleteTruePostCancel(TButton * ManufacturerAddButton, TButton * ManufacturerEditButton, TButton * ManufacturerDeleteButton, TButton * ManufacturerPostButton, TButton * ManufacturerCancelButton)
{
ManufacturerAddButton->Visible = False;
ManufacturerEditButton->Visible = False;
ManufacturerDeleteButton->Visible = False;
ManufacturerPostButton->Visible = True;
ManufacturerCancelButton->Visible = True;
}
//---------------------------------------------------------------------------
void ManufacturerButtonVisibleTrueAddEditDeleteFalsePostCancel(TButton * ManufacturerAddButton, TButton * ManufacturerEditButton, TButton * ManufacturerDeleteButton, TButton * ManufacturerPostButton, TButton * ManufacturerCancelButton)
{
ManufacturerAddButton->Visible = True;
ManufacturerEditButton->Visible = True;
ManufacturerDeleteButton->Visible = True;
ManufacturerPostButton->Visible = False;
ManufacturerCancelButton->Visible = False;
}
//--------------------------------------------------------------------------- |
|
0
|