Академический Документы
Профессиональный Документы
Культура Документы
2
004.658
59
59
. .
MS Visual C++ 2010 .NET. . .: ,
2012. 320 .: .
ISBN 978-5-459-00786-2
Visual Studio 2010
C++/CLI. ,
, .
.
.
. . . , .
WebBrowser ,
-. MS Excel, MS Word, AutoCAD MATLAB. PDF-.
SQL Server MS Access
ADO.NET. , .
, ,
, MS Visual C++/CLI.
32.973.233-018.2
004.658
. .
, , ,
. , ,
, .
ISBN 978-5-459-00786-2
, 2012
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
? . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2. . . . . . . . . . . . . . . . . . . . . . . 47
3. . . . . . . . . . . . . 57
4. , ,
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5. . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7. . . . . . . . . . 149
8. WebBrowser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
9. MS Word, MS Excel, AutoCAD MATLAB,
PDF- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
10. ADO.NET . . . . . . . 229
11. LINQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
12. , Windows Application . . . . . . . . . . 280
. . . . . . . . . . . . . . . . . . . . . . . 303
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
? . . . . . . . . . . . . . . . . . . . . . . 12
1.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
, , . . . . . . . . . . . . . . . . . . . . .
MouseHover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TextBox
TryParse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
CheckBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
TabControl RadioButton . . . . . . . . . . . . . . .
Visible ToolTip Balloon . .
ComboBox . . . . . .
, .
Unicode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
19
24
26
29
31
32
34
37
40
43
2. . . . . . . . . . . . . . . . . . . 47
12. . . . . . . . . . . . . . . . . . . . . .
13.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14. MessageBox::Show .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15. Visual Basic C++ . . . . . . . . . . . . . . . .
16. Dictionary . . . .
47
49
51
52
55
3. . . . . . . 57
17.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18. Button
. . . . . . . . . . . . . . . . . . . . . . . . . . .
19. . . . . . . . . . . . . . .
20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21. LinkLabel . . . . . . . . . . . . . . . . . . . . . . . . .
22. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23. . . . . . . . . . . . .
24. ,
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25. . . . . . . . . . . . .
57
59
61
63
67
69
71
73
75
4. , ,
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
26. / Unicode.
try...catch . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
27. / Windows 1251 . . . . . . 81
28. . .
Closing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
29. -
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
30. RTF- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
31. ( )
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
32. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
33. /
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5. . . . . . . . . . . . . . . . . . . . . . . . 110
34. . . .
35. PictureBox
. . . . . . . . . . . . . . . . . . . . . . . . .
36. () . . . . . . . . . .
37. ListBox . . . . . . . . . . . . . . . . . . . . . .
38. . . . . . . . . . . . . . . .
39. . . . . . . . . . . . . . . . . . . . . . . . . . .
40. BMP- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41. JPG-
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42. . .
43. . . . . . . . . . . . . . . . . . . . . . .
44. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45. Graphics . . . . . . . . . . . . . . .
110
113
115
116
120
121
122
123
125
127
130
133
6.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
46. . . . . . . . . . . . .
47. PictureBox.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48. Alt+PrintScreen . . . . . .
49. BMP- . . . . . . . . . . .
50. Timer . . . . . . . . . . . . . . . . . . . . . . . . .
51.
. . . 138
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7. .
140
142
143
145
146
149
52. . String::Format . . . . . . . . . . . . . .
53. Double- .
. StringReader . . . . . . . . . . . . . . . .
54. Internet Explorer . . . . . . . . . . . . . . . . . . . . . . . . .
55.
DataGridView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56. -
DataGridView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57. . DataGridView. DataTable. DataSet.
XML . . . . . . . . . . . . . . . . . . . . . . .
58. .
DataGridView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
59. . . . . . . . . . . . . . . . . . . . . . . . . . . .
60.
Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
149
152
155
158
159
162
165
170
174
8. WebBrowser . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
61.
62.
63.
64.
65.
HTML- WebBrowser . . . . . . . . . . . .
Flash- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
- HTML- . . . . . . . . . . . . . . . . . .
- . . . . . . . . . . . . . . . . . . . . . . .
-
WebBrowser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
178
180
181
183
187
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
190
194
197
199
202
205
72. AutoCAD
Visual C++ 2010 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73. MATLAB Visual C++ 2010 . . . . . . . . .
74. MATLAB . . . . . . . .
75. PDF-
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
76. PDF- . . . . . . . . . . . . . . . . . . . . . . . . . . .
77. PDF- . . . . . . . . . . . . . . . . . .
208
211
213
215
219
224
229
231
234
235
237
239
241
243
245
247
250
252
255
259
263
266
271
274
276
99. . . . . . . . . . . . . . . . . 284
100. , ,
. . . . . . . . . . . . . . . . . . . . . . . . . . . 287
101. . . . . . . . . . . . 290
102. . . . . . . . . . . . . . . 292
103. Windows Media Player 11 . . . . . . . . . . . . . . . . . . . . 294
104. . . . . . . . . . . . . . . . . . . 298
105. .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
. . . . . . . . 302
. . . . . . . . . . . . . . . . . . . 303
Microsoft Visual Studio 2010 .
, , ,
, - ( exe-), , .
Visual Studio 2010
.NET Framework Windows, -.
.NET Framework (CLR) .NET Framework, ADO.NET,
ASP.NET, Windows Forms Windows Presentation Foundation (WPF).
.NET Framework ,
,
.
Visual Studio 2010
Visual Basic, Visual C#, Visual C++ Visual F#. ,
.
C++ (Borland,
GNU, Intel), MS Visual C++ .NET.
C++ C++/CLI. , , ,
.
- . Visual Studio,
C#, Visual Basic C++, .NET , .
, , .
, .
, , , , . , .
,
. ,
, .
10
().
, . WebBrowser
, -.
()
MS Excel, MS Word, AutoCAD MATLAB. PDF-.
SQL Server MS Access ADO.NET.
LINQ, C++/CLI Microsoft
. , .
. ,
(...) . ,
,
.
. ( 100 ) .
, ,
, , , . (www.piter.com)
.
, , , , . -
, . . , .
. - .
, ,
, , goto . . , , , , ,
, . ,
, , ,
, , .
, (,
).
,
, ,
MS Visual C++/CLI. ? , ,
11
,
.
.
,
.
C# Visual Basic, , C#,
Visual Basic .NET, , , , ,
.
,
. ziborov@ukr.net,
.
, ,
comp@piter.com ( , ).
!
web- http://www.piter.com .
?
, , . ,
, , ,
, , ,
, ,
.
.
60- , .
,
, .
(
) . 1968
- ()
: , . goto. goto .
, : , . . goto,
( )
( ). goto .
(),
. (),
(if else), (switch case).
,
.
, , ,
( ), goto. ,
. , .
- . , ,
13
,
,
. , .
, IBM
- , .
goto .
.
,
, ,
,
. ,
, .
,
, . ,
, ()
. , , , ,
, . ,
, .
, , , .
-
.
;
, .
: ,
, . , ? , ,
, - , .
,
() !
, , ,
. -
14
, . , ,
.
,
, , .
1. , ,
- , File
New Project. New Project (Installed Templates). , Visual Studio, Visual Basic,
Visual C#, Visual C++, Visual F# . Visual C++. Visual C++
CLR, (
) (Templates) Windows Forms Application Visual C++.
16
. 1.2.
Form1,
,
, . TextBox,
Button, Label,
, .
, ,
,
Toolbox,
, . .
,
- , Microsoft Visual C++ 2010,
.
!
23 .
-
. , ,
, .
: Form, Label,
Button MessageBox ! ( ).
.
Toolbox.
, , , Ctrl+Alt+x ViewToolbox. , Label Button
, Toolbox. , . 1.3.
1. , ,
17
. 1.3.
, . ,
Toolbox. ,
(properties). , (. 1.4):
(Name) button1, (Text), (Location)
X, Y, Size . . , ,
Properties, Properties
(. 1.4).
. 1.4. button1
,
: Form1 label1.
18
. label1 Text
Microsoft Visual C++ 2010 ( label1). button1 Text .
, ,
. , , ,
, (Load) .
. . , ,
.
button1 (. . 1.4) Events () button1
Click. Form1.h (. . 1.5).
1.5.
. 1.5. ,
,
button1_Click:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { }
2. MouseHover
19
, . , : Form1.h
Form1.h [Design], ( ).
Ctrl+Tab,
Windows,
F7.
,
, : !
:
MessageBox::Show(" !");
() Show MessageBox
! (::)
Show Messagebox. ,
, ,
, . ,
C- .
C- .
, (Click)
button1. F5 (. 1.6).
. 1.6.
, MS Visual C++!
, First.sln
First.
2. MouseHover
. MouseHover label1. MouseHover
, - ,
20
, ( .
hover , ). , MouseHover ,
. MouseEnter (),
(
label1), MouseHover.
,
Label Button.
Microsoft Visual C++ 2010; , ,
! , (
MouseHover),
Hover.
Visual Studio 2010,
New Project. New Project Visual C++ CLR, ( )
(Templates) Windows Forms Application Visual C++.
Hover OK.
Toolbox Label
Button, . . Properties
(Events)
Form_Load, button1_
Click label1_MouseHover.
Form1.h,
Visual Studio 2010 . , :
private:System::Void lab el1_MouseHover(System::Object^ sender,
System::EventArgs^ e){}
:
MessageBox::Show(" Hover!");
: F5,
label1, button1. !
.
, . , ,
. Properties.
! - , . ! () . ?
, .
, . , , .
, , ,
2. MouseHover
21
; , ,
. , , .
. , ,
.
( InitializeComponent),
Form1_Load,
.
, ,
, : Form1.h [Design].
. , ,
, Form1_Load,
Button Label
.
, button1_Click , Label.
, , :
private: System::Void Form1_Load(System::Object^
System::EventArgs^ e) { }
sender,
. Text
label1 Microsoft Visual C++ 2010:
label1->Text = "Microsoft
Visual
C++ 2010";
button1:
button1->Text = " ";
. , la,
,
. ,
IntelliSense ( ),
! Visual Studio 2010 , , . , Visual Studio 2010,
IntelliSense , :
Intellisense: Unavailable for C++/CLI ( IntelliSense C++/
CLI). Visual Assist X Microsoft
Visual Studio Whole Tomato; ,
: http://www.wholetomato.com.
22
Form1::Text = "";
, 1.1, .
1.1. Form1.h,
// ...............
// , ,
// ,
this->ResumeLayout(false);
this->PerformLayout();
Visual
Studio
}
#pragma endregion
// .
// Form1_Load ,
// . button1_Click
// " !". ,
// ,
// " Hover".
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
{ // :
this->Text = "";
// Form1::Text = "";
2. MouseHover
label1->Text = "Microsoft Visual
button1->Text = " ";
23
C++ 2010";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{ // :
MessageBox::Show(" !");
}
private: System::Void label1_MouseHover(System::Object^ sender,
System::EventArgs^ e)
{ // , :
MessageBox::Show(" Hover!");
}
};
}
, ,
, . C (//)
/* */. , ,
, . ,
. , .
, ,
,
. .
. 1.7 .
. 1.7.
,
, , . C++ 2010 Consolas.
Courier New, ,
ToolsOptionsEnvironmentFonts and Colors.
(FileClose Project).
, Hover. , Hover.sln, Hover.
24
3.
, , ,
( )
, .
,
.
Visual Studio 2010, New Project. New Project
Visual C++ CLR, ( )
(Templates) Windows Forms Application Visual C++.
OK.
Toolbox
Button, Label DateTimePicker. . DateTimePicker,
, . 1.8. ,
DateTimePicker Button.
Label.
, . 1.8.
Form1.h.
Visual Studio
Form_Load ( 1.2). , ,
. ValueChanged.
, Form1.h[Design]
, (Events), dateTimePicker1
ValueChanged. Form1.h.
(. 1.2).
1.2. Form1.h,
// ...............
// , ,
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
//
private: System::Void Form1_Load(System::Object^
System::EventArgs^ e)
sender,
Visual
Studio
3.
25
{ // :
this->Text = " ";
dateTimePicker1->Format = DateTimePickerFormat::Custom;
dateTimePicker1->CustomFormat = "ddd, dd MMM, yyyy";
button1->Text = " :";
label1->Text = String::Format(": {0}",
dateTimePicker1->Text);
}
private: System::Void dateTimePicker1_ValueChanged(System::Object^ sender,
System::EventArgs^ e)
{ // :
label1->Text = String::Format(" : {0}",
dateTimePicker1->Text);
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{ // " "
// dateTimePicker1:
dateTimePicker1->Focus();
// <F4>:
SendKeys::Send("{F4}");
}
};
}
, : ( ddd)
; (dd MMM) ,
, , (yyyy).
ValueChanged label1 .
String::Format.
: {0} : , Text dataTimePicker1, .
dateTimePicker1. F4
. F4
Windows. , -,
( ) , F4
-,
. F4. Send
.
. 1.8.
,
Visual Studio Microsoft www.msdn.com.
.
, .
sln .
26
. 1.8.
4.
TextBox TryParse
TextBox. ,
, Label.
.
, Visual Studio,
FileNewProject. New Project Visual C++ CLR,
(Templates) Windows Forms Application
Visual C++. OK.
Toolbox ( , , ,
Ctrl+Alt+x ViewToolbox) TextBox, Label
Button. ,
Tools.
, .
, . 1.9.
.
Form1.h, InitializeComponent.
,
. ,
. Form1.h. (
this), button1 textBox1,
label1 :
this->Text = " ";
button1->Text = " ";
textBox1->Clear(); //
label1->Text = nullptr; // = String::Empty;
4. TextBox TryParse
27
F5 , .
button1_Click . ,
. ,
Single ( 1.3).
1.3.
TryParse
// ...............
// , ,
// ,
this->ResumeLayout(false);
this->PerformLayout();
Visual
Studio
}
#pragma endregion
// ,
//
// label1.
// , label1.
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
button1->Text = " ";
label1->Text = String::Empty;
// label1->Text = nullptr;
this->Text = " ";
textBox1->Clear(); //
textBox1->TabIndex = 0; //
}
private: System:: // " ":
Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
Single X; // -
// Single:
bool _ = Single::TryParse(textBox1->Text,
System::Globalization::NumberStyles::Number,
System::Globalization::NumberFormatInfo::CurrentInfo, X);
// - (Integer,
// , ).
//
// -
// - ;
// X
if (_ == false)
{ // :
label1->Text = " ";
28
1.3 ()
label1->ForeColor = Color::Red; // -
return; // -
}
Single Y = (Single)Math::Sqrt(X); // -
label1->ForeColor = Color::Black; // -
label1->Text = String::Format(" {0} {1:F5}", X, Y);
}
};
}
, . TryParse. TryParse textBox1->Text. , (Integer),
(HexNumber), .
, ,
CurrentInfo,
. Windows
XP .
, ,
. ( ,
) TryParse ,
.
TryParse .
, TryParse true false,
, . ,
(, ), label1
: . ,
, button1_Click
return. . 1.9 .
, TryParse
2,3 ,
.
- ,
Math::Sqrt(X). Visual Studio 2010
Math. ,
Math (::).
: Abs, Sin, Cos, Min . .
1.9.
E = 2,718... (
5.
29
5.
,
, , . ,
TextBox, Label,
(, ), Button
.
Visual Studio CLR Windows
Forms Application Visual C++ . 1.4.
1.4. ,
// ...............
// , ,
// ,
this->ResumeLayout(false);
this->PerformLayout();
Visual
Studio
}
30
1.4 ()
#pragma endregion
// ,
// , " ",
//
private: System:: // " ":
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
Form1::Text = " ";
textBox1->Text = nullptr; textBox1->TabIndex = 0;
textBox1->PasswordChar = *;
textBox1->Font = gcnew System::Drawing::Font("Courier New",
9.0F);
// textBox1->Font = gcnew System::Drawing::Font(FontFamily::
//
GenericMonospace,9.0F);
label1->Text = String::Empty;
label1->Font = gcnew System::Drawing::Font("Courier New", 9.0F);
button1->Text = " ";
}
private: System:: // " ":
Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
label1->Text = textBox1->Text;
}
};
}
,
c textBox1->PasswordChar;
(*). , . Courier New
, .
, , .
Consola. , Font
: textBox1 label1. 9.0 .
TabIndex = 0
.
button1_Click
.
. , F5. . 1.11 .
( F11
F10)
1.11.
.
6. CheckBox
31
, .
sln .
6.
CheckBox
CheckBox ()
Toolbox. ( ),
(). , , Label. CheckBox.
Visual Studio 2010 CLR Windows Forms Application Visual C++. Toolbox, Label CheckBox. 1.5
.
1.5. ,
// ...............
// , ,
// ,
this->ResumeLayout(false);
this->PerformLayout();
Visual
Studio
}
#pragma endregion
// , Label,
// CheckBox
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = " CheckBox";
checkBox1->Text = ""; checkBox1->Focus();
label1->Text = " ";
label1->TextAlign = ContentAlignment::MiddleCenter;
label1->Font = gcnew System::Drawing::Font("Courier New",
14.0F);
}
private: System::Void checkBox1_CheckedChanged(System::Object^ sender,
System::EventArgs^ e)
{ //
if (checkBox1->Checked == true) label1->Font = gcnew System::
Drawing::Font("Courier New", 14.0F,
FontStyle::Bold);
if (checkBox1->Checked == false) label1->Font = gcnew System::
Drawing::Font("Courier New", 14.0F,
FontStyle::Regular);
}
};
}
32
Form1 ( this), label1 checkBox1. ,
, , .
, (checkBox1.
Focus();), .
, TextAlign (MiddleCenter) , . Courier New (
) 14 .
CheckedChanged.
CheckedChanged,
checkBox1 Form1.h [Design].
(. ): (
) Checked = true, label1 Courier
New, 14 , Bold, .
: , checkBox1.
Checked = false, Regular, .
, else (),
,
.
, F5. . ,
. 1.12.
. 1.12.
, 1.
sln 1.
7.
CheckedChanged ( ). if()
:
label1->Font = gcnew System::Drawing::Font(
"Courier New", 14.0F, label1->Font->Style ^ FontStyle::Bold);
7.
33
label1>Font->Style FontStyle::Bold.
(^) ( ), Bold, label1->Font->Style Bold.
label1->Font->Style Bold, (^)
Bold. XOR.
XOR :
A
0
1
0
1
Xor
Xor
Xor
Xor
Xor
B
0
0
1
1
=
=
=
=
=
C
0
1
1
0
B = 1 (FontStyle::Bold), A (label1->Font->Style)
Bold, Regular ( Bold). , (^)
, label1->Font->Style.
, .
.
, , F5.
CheckBox.
FontStyle . , ,
Bold Regular, Italic
Regular. 1.6.
1.6.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// "^" -
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = " CheckBox";
checkBox1->Text = ""; checkBox2->Text = "";
label1->Text = " ";
label1->TextAlign = ContentAlignment::MiddleCenter;
label1->Font = gcnew System::Drawing::Font("Courier New",
14.0F);
}
private: System::Void checkBox1_CheckedChanged(System::Object^ sender,
System::EventArgs^ e)
34
1.6 ()
{
label1->Font = gcnew System::Drawing::Font(
"Courier New", 14.0F, label1->Font->Style ^
FontStyle::Bold);
}
private: System::Void checkBox2_CheckedChanged(System::Object^ sender,
System::EventArgs^ e)
{
label1->Font = gcnew System::Drawing::Font(
"Courier New", 14.0F, label1->Font->Style ^
FontStyle::Italic);
}
};
}
, ,
CheckedChanged CheckBox2.
. 1.13.
. 1.13.
, 2.
sln 2.
8. TabControl
RadioButton
.
Internet Explorer .
,
TabControl.
,
, TabControl
RadioButton. . 1.14.
, Visual Studio CLR Windows Forms Application Visual C++.
. Toolbox,
8. TabControl RadioButton
35
TabControl. , ,
, . 1.14, .
, .
. 1.14.
, .
( Properties) tabControl1 TabPages, TabPage Collection Edit, (
Add) ( ).
, TabPages(2).
.
, , ,
( 1.7).
, Toolbox
RadioButton, Label.
.
1.7. ,
// ...............
// , ,
// ,
this->ResumeLayout(false);
this->PerformLayout();
Visual
Studio
}
#pragma endregion
// , ,
// TabControl
// RadioButton
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
// "":
auto tabPage3 = gcnew System::Windows::Forms::TabPage();
tabPage3->UseVisualStyleBackColor = true;
36
1.7 ()
//
// tabControl1:
this->tabControl1->Controls->Add(tabPage3);
// 5 6 :
tabPage3->Controls->Add(this->radioButton5);
tabPage3->Controls->Add(this->radioButton6);
// 5 6:
this->radioButton5->Location = System::Drawing::Point(20, 15);
this->radioButton6->Location = System::Drawing::Point(20, 58);
this->Text = " ";
// :
tabControl1->TabPages[0]->Text = "";
tabControl1->TabPages[1]->Text = "";
tabControl1->TabPages[2]->Text = "";
// :
radioButton1->Text =
", ,\n-";
radioButton2->Text = " , , " +
",\n, ";
//
// radioButton2->Text = " , ," +
// Environment::NewLine + ", ";
// :
radioButton3->Text = "";
radioButton4->Text = "";
// :
radioButton5->Text = "11 ";
radioButton6->Text = "13 ";
label1->Text = radioButton1->Text;
}
private: System::Void radioButton1_CheckedChanged(System::Object^ sender,
System::EventArgs^ e)
{ label1->Text = radioButton1->Text; }
private: System::Void radioButton2_CheckedChanged(System::Object^ sender,
System::EventArgs^ e)
{ label1->Text = radioButton2->Text; }
private: System::Void radioButton3_CheckedChanged(System::Object^ sender,
System::EventArgs^ e)
{ label1->ForeColor = Color::Red; }
private: System::Void radioButton4_CheckedChanged(System::Object^ sender,
System::EventArgs^ e)
{ label1->ForeColor = Color::Blue; }
private: System::Void radioButton5_CheckedChanged(System::Object^ sender,
System::EventArgs^ e)
{ label1->Font = gcnew System::Drawing::
Font(label1->Font->Name, 11); }
private: System::Void radioButton6_CheckedChanged(System::Object^ sender,
System::EventArgs^ e)
37
};
}
, Form1_
Load (
InitializeComponent) . ,
auto, tabPage3 ( var C#)
Visual C++ 2010. tabPage3
tabControl1, . .
.
, , - ( ), ,
,
.
CheckChanged (. 1.7). ,
.
, .
sln .
9. Visible
ToolTip Balloon
Visible ().
Label , , . .
.
Visual Studio 2010, , FileNewProject, CLR
Windows Forms Application Visual C++. Visible.
Toolbox Label,
Button ToolTip.
( ) ToolTip on Tip.
, ( Properties) .
button1 ToolTip on Tip
.
. ,
!
38
View Code.
1.8.
1.8. Visible ToolTip
// ...............
// , ,
// ,
this->ResumeLayout(false);
this->PerformLayout();
Visual
Studio
}
#pragma endregion
// Label ,
// ,
// . Visible.
// " " Balloon
private: System:: // " ":
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
Form1::Text = " ";
label1->Text = " ,\n" +
" , ";
label1->TextAlign = ContentAlignment::MiddleCenter;
button1->Text = "";
toolTip1->SetToolTip(button1, "\r\n");
//
// :
toolTip1->IsBalloon = true;
// IsBalloon = false,
//
}
private: System:: // " ":
Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
// :
// if (label1->Visible == true) label1->Visible = false;
// else label1->Visible = true;
// :
// label1->Visible = label1->Visible ^ true;
// "^" - ,
// :
label1->Visible = !label1->Visible;
}
};
}
Text , (+) .
\n ( \r\n)
39
1 ( ).
Environment::NewLine. Environment
. TextAlign (MiddleCenter). ,
toolTip1, (Set) button1
(. . 1.14).
IsBalloon false, , IsBalloon = true
( Balloon) (. 1.15).
, () ( Form1.cs[Designer]) button1.
, , ,
. :
(Visible) (true), (false);
(else) .
. 1.15.
, . . !
, Enter .
.
.
^ ( ). , , ,
(true), , (false), .
:
label1->Visible
= ! label1->Visible;
label1>Visible . ,
- .
, "\n",
"\r" . ,
"\n".
"\r\n"
"\r" (
). . .
40
, .
Visual Studio 2010, ,
Ctrl+KC (Comment). ,
,
Ctrl+KU (Uncomment).
, Visible.sln Visible.
10.
ComboBox
ComboBox .
, .
ComboBox.
Visual Studio 2010, CLR Windows
Forms Application Visual C++. . Toolbox
TextBox, Button, Label
ComboBox.
1.9.
1.9.
// ...............
// , ,
// ,
this->ResumeLayout(false);
this->PerformLayout();
Visual
Studio
}
#pragma endregion
// , .
//
// ComboBox
private: System:: // :
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = ""; label1->Text = ": ";
button1->Text = " ";
comboBox1->Text = " ";
// () :
array<String^>^ = {"", "",
"", "", ""};
// :
// auto = gcnew array<String^>{"", "",
10. ComboBox
41
//
"", "", ""};
comboBox1->Items->AddRange();
comboBox1->TabIndex = 2;
textBox1->Clear(); textBox1->TabIndex = 0;
textBox2->Clear(); textBox2->TabIndex = 1;
}
private: System::Void comboBox1_SelectedIndexChanged(System::Object^ sender,
System::EventArgs^ e)
{ //
label1->Text = ": ";
// Single:
Single X, Y, Z = 0;
bool _1 = Single::TryParse(textBox1->Text,
System::Globalization::NumberStyles::Number,
System::Globalization::NumberFormatInfo::CurrentInfo, X);
bool _2 = Single::TryParse(textBox2->Text,
System::Globalization::NumberStyles::Number,
System::Globalization::NumberFormatInfo::CurrentInfo, Y);
if (_1 == false || _2 == false)
{
MessageBox::Show(" !", "",
MessageBoxButtons::OK, MessageBoxIcon::Error);
return;
}
// :
switch (comboBox1->SelectedIndex)
{ // :
case 0:
// "":
Z = X + Y; break;
case 1:
// "":
Z = X - Y; break;
case 2:
// "":
Z = X * Y; break;
case 3:
// "":
Z = X / Y; break;
case 4:
// "":
textBox1->Clear(); textBox2->Clear();
label1->Text = ": "; return;
}
label1->Text = String::Format(" {0:F5}", Z);
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{ // " ":
// "" :
comboBox1->DroppedDown = true;
}
};
}
42
,
: , . .
TabIndex
. . ,
, textBox1->TabIndex = 0. Tab
(. 1.16).
. 1.16.
omboBox1_
SelectedIndexChanged TryParse ,
. TryParse .
, Number, ,
. , , CurrentInfo,
.
Windows
. , ,
.
( , ) TryParse ,
.
TryParse .
, TryParse true false,
, . ,
,
!
return.
switch
SelectedIndex.
switch case. ,
, ++ (C#, Turbo C)
, Basic, ,
11. ,
43
case, break
switch.
String::Format label1. {0:F5} ,
Z
( ). , . Visual Studio
(. . 1.16).
,
ComboBox. DroppedDown
comboBox1.
, .sln
.
11. ,
.
Unicode
. - . . . . : ASCII,
ANSI Cyrillic ( Windows 1251), Unicode.
, 1 . 1 8 ,
28 = 256 ,
256 . ASCII 0 127
, , , . 128
255 , . IBM-
.
MS-DOS, .
-.
Windows ANSI
(Windows 1251). 0 127 ,
.
. - . ANSI . ANSI Cyrillic Windows 1251.
Unicode. . 216 = 65 536 .
44
Unicode .
MS Word ,
Unicode.
Unicode: . , , , , , . , Unicode. .
, R,
. Label ,
= 3,14.
MessageBox .
Visual Studio 2010 CLR
Windows Forms Application C++ Label,
TextBox Button. . 1.17,
.
. 1.17. , Unicode
label1 MessageBox
, , : MS Word.
Visual Studio 2010 h- Unicode,
.
,
Convert::ToChar,
Unicode. ,
h- ANSI,
. Unicode , MS Word .
. , 0x. ,
n = 0x3B2 n 946.
Unicode .
( 1.10).
11. ,
45
1.10. Unicode
// ...............
// , ,
// ,
this->ResumeLayout(false);
this->PerformLayout();
Visual
Studio
}
#pragma endregion
// ,
// MessageBox .
// R,
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Font = gcnew System::Drawing::
Font("Times New Roman", 12.0F);
this->Text = " "; button1->Text = "";
// = 2 R
label1->Text = String::Format(
" :\n {0} = 2{1}{2}{1}R,\n {2} = {3}",
Convert::ToChar(0x3B2), Convert::ToChar(0x2219),
//
0=
1 -
Convert::ToChar(0x3C0), Math::PI);
//
2 -
3 -
label2->Text = " R:";
textBox1->Clear();
}
private: System::
Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
// - :
Single R; // -
bool _ = Single::TryParse(textBox1->Text,
System::Globalization::NumberStyles::Number,
System::Globalization::NumberFormatInfo::CurrentInfo, R);
if (_ == false)
{
MessageBox::Show(" !", "",
MessageBoxButtons::OK, MessageBoxIcon::Error); return;
}
Single beta = 2 * (Single)Math::PI * R;
// 0x3B2 -
MessageBox::Show(String::Format(" {0} = {1:F4}",
Convert::ToChar(0x3B2), beta), " ");
}
};
}
,
Times New Roman, 12 ,
46
, ,
. , String::Format, Text label1.
,
= 3,14.
Math::PI. Escape- "\n"
. NewLine
Environment.
button1_Click ( ), TryParse, .
(true), TryParse R.
beta Math::PI Double
Single .
beta Convert::ToChar(0x3B2) MessageBox.
String::Format. {0:F4} , beta
.
,
Form1.h
ANSI. , Unico.
sln Unico.
12.
, , -
, .
,
.
.
- ,
( . console ).
.
, , .
Visual C++ 2010, (New Project),
Visual C++ CLR Console Application CLR,
(Name) . OK
(. 2.1).
, Visual Studio 2010
. , , F10.
Windows- C++ Main()
. Main()
( 2.1).
48
. 2.1.
2.1.
// .cpp: .
// ,
#include "stdafx.h"
using namespace System;
int main(array<System::String ^> ^args)
{
// :
Console::Title = " :";
Console::BackgroundColor = ConsoleColor::Cyan; // -
Console::ForegroundColor = ConsoleColor::Black; // -
Console::Clear();
// :
Console::WriteLine(" :");
String^ = Console::ReadLine();
Single X, Y, Z;
// :
X = Single::Parse();
// :
Console::WriteLine(" :");
= Console::ReadLine();
Y = Single::Parse();
Z = X + Y;
Console::WriteLine(" = {0} + {1} = {2}", X, Y, Z);
// 1000 0.5 :
Console::Beep(1000, 500);
// - :
Console::ReadKey();
return 0;
}
, Main() ,
.
13.
49
. - ,
BackgroundColor - (Cyan), ,
, (Black).
WriteLine, , ,
ReadLine. Single
, . Single ,
, , .
Single 4 . ,
, Parse.
.
WriteLine Console:
Console::WriteLine(" = {0} + {1} = {2}", X, Y, Z)
Beep, .
Console::ReadKey();
- . ,
, . . F5, .
. 2.2.
. 2.2.
,
,
, . ,
, , (notepad.exe),
.
, .sln
.
13.
, ,
(, ) , ,
50
.
.
Visual Studio 2010, (New Project), Visual C++
CLR Console Application CLR,
, 2.2.
2.2.
// .cpp: .
// ,
//
#include "stdafx.h"
using namespace System;
int main(array<System::String ^> ^args)
{
Console::BackgroundColor = ConsoleColor::Cyan;
Console::ForegroundColor = ConsoleColor::Black;
Console::Title = ""; Console::Clear();
Console::WriteLine(" ");
for (double i = 0; i <= 10; i++)
{
Console::WriteLine("{0,4} {1,8:F4}", i, Math::Sqrt(i));
}
Console::ReadKey();
return 0;
}
, for WriteLine, . ,
String::Format, . {0,4} {1,8:F4} : ,
i, ;
,
i, .
(. 2.3).
. 2.3.
14. MessageBox::Show
51
, String::Format.
, .
sln .
14. MessageBox::Show
.
1980- ,
. Visual C++
MessageBox::Show, , , . -
. , .
,
MessageBox ,
String::Format. Visual Studio 2010, ,
Visual C++ CLR Console Application CLR,
ConsoleMessageBox.
,
MessageBox. Project References
Add New Reference, .NET
System.Windows.Forms. Properties References ()
.
() System.Windows.Forms.dll, Program Files, .NET Framework.
,
:
using namespace System::Windows::Forms;
using ,
MessageBox ( 2.3).
2.3. MessageBox.Show
// ConsoleMessageBox.cpp: .
// MessageBox
// , String::Format
#include "stdafx.h"
using namespace System;
using namespace System::Windows::Forms;
int main(array<System::String ^> ^args)
52
2.3 ()
{
String^ = String::Format(
"(d) - \"\" : . . . . . . . . . {0:d}\n" +
"(D) - \"\" :. . . . . . . . . . .{0:D}\n" +
"(t) - \"\" : . . . . . . . {0:t}\n" +
"(T) - \"\" :. . . . . . . . {0:T}\n" +
"(f) - \"\" \"\" : {0:f}\n" +
"(F) - \"\" \"\" :. {0:F}\n" +
"(g) General - : . . {0:g}\n" +
"(G) General - \"\" : . . . . . . . . . . . . . {0:G}\n" +
" - , (G). . . . . . {0}\n" +
"(M) - : . . . . . . {0:M}\n" +
"(U) Universal full date/time - . . {0:U}\n" +
"(Y) - . . . . . . . {0:Y}\n",
DateTime::Now);
MessageBox::Show(, " ");
return 0;
}
, F5.
, MessageBox (. 2.4).
. 2.4.
,
ConsoleMessageBox.
53
54
2.4 ()
{
= Interaction::
InputBox(" :", " ", "", 100,
100);
// , , ,
:
if (Information::IsNumeric() == true) break;
}
Single Y = Single::Parse();
Single Z = X + Y;
= String::Format(" = {0} + {1} = {2}", X, Y, Z);
// :
Interaction::MsgBox(, MsgBoxStyle::Information,
" ");
return 0;
}
for(;;){}.
InputBox , (. 2.5).
. 2.5.
IsNumeric, ,
break .
. , ,
Parse. ,
.NET Framework TryParse,
.
MsgBox.
String.Format. = {0} + {1} = {2} : , X, ,
,
Y, , .
. 2.6.
. 2.6.
,
VisualBasic.
16. Dictionary
55
16.
Dictionary
Dictionary ()
. (), ,
Value Key.
, Dictionary<Key, Value>
-. Dictionary<Key, Value> , , .
Dictionary . (null),
, Value .
, .
Dictionary ,
.
, , , Dictionary.
, ,
, .
-. , 30.
Visual Studio 2010,
, Visual C++ CLR Console Application CLR, Name . 2.5
.
2.5.
// ___.cpp: .
// Dictionary
// .
// , - .
// for each, ,
// 30
#include "stdafx.h"
using namespace System;
// :
using namespace System::Collections::Generic;
int main(array<System::String ^> ^args)
{
// :
Console::ForegroundColor = ConsoleColor::White;
Console::Title = " ";
// String^ int:
auto = gcnew Dictionary<String^, int>();
56
2.4 ()
// :
[""] = 31;
[""] = 31;
[""] = 28;
[""] = 31;
[""] = 31;
[""] = 30;
[""] = 30;
[""] = 31;
[""] = 31;
[""] = 30;
[""] = 30;
[""] = 31;
Console::WriteLine(" 30 : \n");
// , 30 :
for each(KeyValuePair<String^, int> in )
if ( .Value == 30 )
Console::WriteLine("{0} - {1} ", .Key, .Value);
// - :
Console::ReadKey();
return 0;
}
Dictionary,
String^ int
. , ,
: , .
, 30 ,
for each. KeyValuePair,
,
.
. 2.7.
. 2.7.
, ,
.sln .
30
17.
,
. , ListBox . , . 3.1.
. 3.1.
ListBox
. , ,
ListBox.
Visual Studio 2010
CLR Windows Forms Application Visual C++
Toolbox ListBox
.
,
, listBox1.
-
58
.
listBox1, (Properties)
listBox1 : MouseEnter, MouseLeave
MouseMove. ( 3.1).
3.1.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
//
// . ,
// ListBox . ListBox
// .
// ,
// ListBox
private: // :
System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
Form1::Text = " ";
}
// ,
// ListBox:
private: System::Void listBox1_MouseEnter(System::Object^ sender,
System::EventArgs^ e)
{
//
listBox1->Items->Add(" ListBox");
}
// ,
// ListBox:
private: System::Void listBox1_MouseLeave(System::Object^ sender,
System::EventArgs^ e)
{
listBox1->Items->Add(" ListBox");
}
// ,
// ListBox:
private: System::Void listBox1_MouseMove(System::Object^ sender,
System::Windows::Forms::MouseEventArgs^ e)
{
// Control MousePosition ,
//
18. Button
59
//
textBox1->Text = String::Format("X = {0} {1}",
this->MousePosition.X, e->X);
textBox2->Text = String::Format("Y = {0} {1}",
this->MousePosition.Y, e->Y);
}
};
}
, MouseEnter,
, ListBox1 (
Add) ListBox.
MouseLeave, ,
ListBox ListBox. ,
, ListBox1.
MouseMove, ListBox1, X Y
, Control MousePosition.
,
, ,
y .
, e , ,
listBox1. listBox1, , y . e->X e->Y ,
.
, , . ,
.sln .
18.
Button
, , ,
. ,
, ,
Toolbox. ,
, , .
60
,
, : , , ,
.
. , ,
Visual Studio 2010, New Project CLR Visual C++ Windows Forms Application Visual C++.
, . ,
3.2.
3.2.
// ...............
// , , Visual Studio
// ,
this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
this->ResumeLayout(false);
}
#pragma endregion
// ,
// .. ,
// Toolbox.
// : , , ,
// " "
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
// :
Button^ button1 = gcnew Button();
// :
button1->Visible = true;
// :
button1->Size = Drawing::Size(100, 30);
// :
button1->Location = Drawing::Point(100, 80);
button1->Text = " ";
//
this->Controls->Add(button1);
// Click "".
// Click :
button1->Click += gcnew EventHandler(this,
&Form1::);
}
private: System::
Void (System::Object^ sender, System::EventArgs^ e)
{
MessageBox::Show(" ");
}
};
}
19.
61
,
button1 . : (Visible),
(Size), (Location) ,
.
.
,
.
(Events)
.
.
(->) button1
Click. , 3.2,
, EventHandler
Click . . ,
3.2.
. . 3.2 .
. 3.2.
,
InitializeComponent Form1.h .
, NewButton.sln NewButton.
19.
, , VB6,
.
Visual Studio (C++, C#, F# Visual Basic) .
62
.
,
, -.
, , , .
, sender, ,
.
, Visual Studio 2010, New Project CLR
Visual C++ Windows Forms Application Visual C++. .
( 3.3).
3.3.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// ,
// .
//
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
Form1::Text = " "; label1->Text = nullptr;
// Click
:
button1->Click += gcnew EventHandler(this, &Form1::);
button2->Click += gcnew EventHandler(this, &Form1::);
//
//
EventHandler
}
private: System::Void (System::Object^ sender, System::EventArgs^ e)
{
// String S = Convert.ToString(sender);
// , , :
Button^ = (Button^)sender;
// String^ = ((Button^)sender)->Text;
label1->Text = " " + ->Text; //
->Name
}
};
}
,
,
20.
63
() EventHandler. ( )
button1->Click . , Click
.
, sender - , , .
C sender
Button , , ,
.
. 3.3 .
. 3.3. ,
, , ,
sender. , .
20.
.
-, , .
Visual Studio 2010, New Project CLR
Visual C++ Windows Forms Application Visual C++.
Toolbox 16 ,
, (=) , .
Form1.h [Design] , . 3.4.
. 3.4.
64
3.4 .
3.4.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// .
// .
//
// ~ ~ ~ ~ ~ ~ ~ ~
// , Form1:
String^ Znak;
// - ;
bool _; // - ;
Double 1, 2; // - ,
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = ""; _ = true;
Znak = nullptr;
button1->Text = "1"; button2->Text = "2"; button3->Text = "3";
button4->Text = "4"; button5->Text = "5"; button6->Text = "6";
button7->Text = "7"; button8->Text = "8"; button9->Text = "9";
button10->Text = "0"; button11->Text = "="; button12->Text =
"+";
button13->Text = "-"; button14->Text = "*"; button15->Text =
"/";
button16->Text = "";
textBox1->Text = "0";
textBox1->TextAlign = HorizontalAlignment::Right;
// " -"
// :
button1->Click += gcnew EventHandler(this, &Form1::);
button2->Click += gcnew EventHandler(this, &Form1::);
button3->Click += gcnew EventHandler(this, &Form1::);
button4->Click += gcnew EventHandler(this, &Form1::);
button5->Click += gcnew EventHandler(this, &Form1::);
button6->Click += gcnew EventHandler(this, &Form1::);
button7->Click += gcnew EventHandler(this, &Form1::);
button8->Click += gcnew EventHandler(this, &Form1::);
button9->Click += gcnew EventHandler(this, &Form1::);
button10->Click += gcnew EventHandler(this, &Form1::);
button12->Click += gcnew EventHandler(this, &Form1::);
button13->Click += gcnew EventHandler(this, &Form1::);
button14->Click += gcnew EventHandler(this, &Form1::);
button15->Click += gcnew EventHandler(this, &Form1::);
20.
65
66
Properties,
, , .
,
Form1_Load. ,
, : textBox1->
TextAlign = HorizontalAlignment::Right.
Click - . Click
.
-
Digit , Text , ,
. Digit
textBox1->Text, . , ,
, .
() _. -,
,
. ,
Form1,
.
_ = true,
, _ = false, . ,
- (_ = false), ,
textBox1.
+, -, *, /
value1 Double. Znak
. ,
, ,
_ true. ,
:
, _ true ( ).
Double. ,
, ,
. , result = value1 + value2, ,
- ,
21. LinkLabel
67
value1. , ,
Visual Studio 2010 (, )
.
, (. 3.5).
. 3.5.
, .
sln .
21. LinkLabel
LinkLabel -,
HTML-, - , , .
, LinkLabel www.mail.ru,
C:\Windows\ .
Visual Studio 2010, New
Project CLR Visual C++ Windows Forms
Application Visual C++. Toolbox
LinkLabel. . ,
, Properties.
( 3.5).
3.5.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
68
3.5 ()
#pragma endregion
//
// www.mail.ru, C:\Windows\
//
// LinkLabel
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{ // :
this->Text = " :";
linkLabel1->Text = "www.mail.ru";
linkLabel2->Text = " C:\\Windows\\";
linkLabel3->Text = " \"\"";
this->Font = gcnew System::Drawing::Font("Consolas", 12.0F);
linkLabel1->LinkVisited = true;
linkLabel2->LinkVisited = true;
linkLabel3->LinkVisited = true;
// :
// :
linkLabel1->LinkClicked += gcnew
LinkLabelLinkClickedEventHandler(this, &Form1::);
linkLabel2->LinkClicked += gcnew
LinkLabelLinkClickedEventHandler(this, &Form1::);
linkLabel3->LinkClicked += gcnew
LinkLabelLinkClickedEventHandler(this, &Form1::);
}
private: System::Void (System::Object^ sender,
LinkLabelLinkClickedEventArgs^ e)
{ // :
LinkLabel^ = (LinkLabel^)sender;
String^ = ->Name;
// :
switch ([9])
{
case 1: //"linkLabel1":
Diagnostics::Process::Start(
"IExplore.exe", "http://www.mail.ru"); break;
case 2: // "linkLabel2":
Diagnostics::Process::Start("C:\\Windows\\"); break;
case 3: //"linkLabel3":
Diagnostics::Process::Start("Notepad", "text.txt");
break;
}
}
};
}
, Text LinkLabel , .
Text LinkLabel3 ,
22.
69
22.
( ) . KeyPress,
.
.
, ,
Alt, Shift Ctrl. ,
Alt, Shift Ctrl, KeyDown,
KeyUp. KeyDown ,
KeyUp .
, , . Visual Studio 2010, New Project
CLR Visual C++ Windows Forms Application
Visual C++. Toolbox Label.
, : KeyPress, KeyDown,
70
KeyUp, .
Properties (Events), .
3.6.
3.6.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// ,
// ,
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
// ():
Form1::Font = gcnew Drawing::
Font(FontFamily::GenericMonospace, 14.0F);
// ( 8
// 14),
Form1::Text = " :";
label1->Text = String::Empty; label2->Text = String::Empty;
}
private: System::Void Form1_KeyPress(System::Object^ sender,
System::Windows::Forms::KeyPressEventArgs^ e)
{
// :
//
label1->Text = " : " + e->KeyChar;
}
private: System::Void Form1_KeyDown(System::Object^ sender,
System::Windows::Forms::KeyEventArgs^ e)
{
//
//
label2->Text = String::Empty;
// Alt
if (e->Alt == true) label2->Text += "Alt: Yes\n";
else
label2->Text += "Alt: No\n";
// Shift
if (e->Shift == true) label2->Text += "Shift: Yes\n";
else
label2->Text += "Shift: No\n";
// Ctrl
if (e->Control == true) label2->Text += "Ctrl: Yes\n";
23.
else
71
label2->Text += String::Format(
" : {0} \nKeyData: {1} \nKeyValue: {2}",
e->KeyCode, e->KeyData, e->KeyValue);
}
private: System::Void Form1_KeyUp(System::Object^ sender,
System::Windows::Forms::KeyEventArgs^ e)
{
//
label1->Text = String::Empty; label2->Text = String::Empty;
}
};
}
label1 (
) KeyPress.
e (e->Alt, e->Shift e->Control)
, - ( ). KeyUp
.
. 3.7 .
. 3.7. ,
,
sln- .
23.
TryParse. true, ,
false . , -
. . ,
Windows,
72
.
.
, . ,
. ,
.
Visual Studio 2010, New Project CLR
Visual C++ Windows Forms Application Visual C++.
Toolbox TextBox .
3.7.
3.7. ( 1)
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// ,
// . Backspace,
//
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = " "; textBox1->Clear();
}
private: System::Void textBox1_KeyPress(System::Object^ sender,
System::Windows::Forms::KeyPressEventArgs^ e)
{
// Backspace:
if (Char::IsDigit(e->KeyChar) == true) return;
if (e->KeyChar == (char)Keys::Back) return;
// :
e->Handled = true;
}
};
}
,
TextBox1.
Clear().
textBox1_KeyPress.
, ,
Properties, (Events), KeyPress .
Visual Studio 2010
.
24.
73
, ,
e. , ,
e->KeyChar. IsDigital (
), , (true false). e Handled,
(true), (false).
textBox1_KeyPress e->Handled = false,
.
,
Backspace, return.
, .
. 3.8.
. 3.8.
,
.
24.
,
, , , , . ,
, , , Windows.
, . (
Windows ).
,
,
. ,
, .
Visual Studio 2010, New
Project CLR Visual C++ Windows Forms
Application Visual C++. Toolbox TextBox
. 3.8.
74
3.8. ( 2)
// ...............
// Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// ,
// (
)
// ~ ~ ~ ~ ~ ~ ~ ~
//
// "." ","
//
// Windows:
String^ ;
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = " ";
// ,
// :
= Globalization::
NumberFormatInfo::CurrentInfo->NumberDecimalSeparator;
}
private: System::Void textBox1_KeyPress(System::Object^ sender,
System::Windows::Forms::KeyPressEventArgs^ e)
{
bool = false;
// :
if (Char::IsDigit(e->KeyChar) == true) return;
// <Backspace>:
if (e->KeyChar == (char)Keys::Back) return;
// textBox, IndexOf() == -1,
:
if (textBox1->Text->IndexOf() != -1)
= true;
// textBox, ,
// :
if ( == true) { e->Handled = true; return; }
// textBox, :
if (e->KeyChar.ToString() == ) return;
// - :
e->Handled = true;
}
};
}
25.
75
, , .
,
, . ,
, KeyPress
Backspace return
e->Handled = true,
.
,
, ,
. :
,
, . ,
, . , .
. 3.8 .
. 3.9.
,
+
Or.
25.
,
. ,
.
. ,
. ,
.
Visual Studio 2010, New Project
CLR Visual C++ Windows Forms Application
Visual C++. Toolbox .
3.9.
3.9.
// ...............
// , , Visual Studio
// ,
this->Text = L"Form1";
this->ResumeLayout(false);
}
76
3.9 ()
#pragma endregion
// .
//
// . ,
//
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
MessageBox::Show(" \"
\"");
}
private: System::Void button2_Click(System::Object^ sender,
System::EventArgs^ e)
{
// " ",
// :
button1->PerformClick();
// :
// button1_Click(nullptr, nullptr);
// :
// button1_Click(button1, EventArgs::Empty);
}
};
}
.
.
,
PerformClick.
. 3.10 .
. 3.10. ,
,
(sln-) -.
,
,
26. /
Unicode.
try...catch
( ). ,
, ,
. , , ,
, ; .
,
, , TextEdit.
.
, . ,
:
// StreamReader
IO::StreamReader^ Reader = gcnew IO::StreamReader("C:\\Text1.txt");
//
String^ Stroka = Reader->ReadToEnd();
Reader->Close();
. ,
.
Unicode.
.
78
4 , ,
26. / Unicode
79
//
IO::File::ReadAllLines("C:\\Text1.txt");
}
catch (IO::FileNotFoundException^ )
{
// :
MessageBox::Show(->Message + \n ,
"", MessageBoxButtons::OK,
MessageBoxIcon::Exclamation);
}
catch (Exception^ )
{
// :
MessageBox::Show(->Message, "",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
}
private: System::Void button2_Click(System::Object^ sender,
System::EventArgs^ e)
{
// :
try
{
// StreamWriter :
auto = gcnew
IO::StreamWriter(filename, false);
->Write(textBox1->Text);
->Close();
//
// ( Close), , ,
// :
// IO::File::WriteAllText("C:\\tmp.tmp", textBox1->Text);
}
catch (Exception^ )
{
// :
MessageBox::Show(->Message, "",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
}
};
}
try, , ,
. try : (try) , .
(, ), (catch)
(, Exception) . ,
.
80
4 , ,
C:\
Text1.txt. OpenFileDialog
. ,
, .
() . .
lename ReadToEnd() textBox1.
Text Close().
.
lename, false , (append) ( ),
(overwrite). Write()
Text textBox1. . 4.1 .
. 4.1. / Unicode
. () Unicode,
. , ,
, ()
Unicode.
ANSI.
ANSI Windows 1251. , RPad ( ), Unicode.
, Unicode
. , ,
Unicode,
.
ANSI,
,
. ? ,
Visual C++,
MSDN, , http://msdn.microsoft.com/library/rus/.
, . ,
81
27. /
Windows 1251
, , . Windows 1251 (ANSI).
, 4.2.
4.2. / Windows 1251
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// / Windows 1251
String^ filename;
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
textBox1->Multiline = true; textBox1->Clear();
textBox1->Size = Drawing::Size(268, 112);
button1->Text = ""; button1->TabIndex = 0;
button2->Text = "";
this->Text = " Windows 1251";
filename = "C:\\Text2.txt";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
//
try
{
// ,
82
4 , ,
4.2 ()
// :
System::Text::Encoding^ =
System::Text::Encoding::GetEncoding(1251);
// StreamReader
IO::StreamReader^ = gcnew
IO::StreamReader(filename, );
textBox1->Text = ->ReadToEnd();
->Close();
// Windows 1251
//
// ( Open Close):
// array <String^>^ =
//
IO::File::ReadAllLines("C:\\Text2.txt", );
}
catch (IO::FileNotFoundException^ )
{ // :
MessageBox::Show(->Message + \n ,
"", MessageBoxButtons::OK,
MessageBoxIcon::Exclamation);
}
catch (Exception^ )
{ //
MessageBox::Show(->Message, "",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
}
private: System::Void button2_Click(System::Object^ sender,
System::EventArgs^ e)
{
// :
try
{
auto =
System::Text::Encoding::GetEncoding(1251);
// StreamWriter :
auto = gcnew
IO::StreamWriter(filename, false, );
->Write(textBox1->Text);
->Close();
// (
// Close), ,
// :
// IO::File::WriteAllText("C:\\tmp.tmp",
//
textBox1->Text, );
}
catch (System::Exception^ )
{
// :
28. .
83
MessageBox::Show(->Message, "",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
}
};
}
,
. GetEncoding(1251) Windows 1251 . ,
->HeaderName.
:
lename , , (
) .
: filename, false ( ,
, ,
) , ,
.
,
auto,
( var C#)
Visual C++ 2010.
, TXT_1251.
sln TXT_1251.
28. .
.
Closing
, , /
. ,
.
Visual Studio 2010 New Project CLR
Visual C++ Windows Forms Application Visual C++.
Toolbox TextBox
MenuStrip. MenuStrip,
: , (. 4.2).
Toolbox OpenFileDialog
SaveFileDialog, , .
, Multiline True (
).
84
4 , ,
. 4.2.
4.3, , ! ,
, ,
Shift+Alt+Enter (Full Screen).
4.3.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
//
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
textBox1->Multiline = true; textBox1->Clear();
textBox1->Size = Drawing::Size(268, 160);
this->Text = " ";
openFileDialog1->FileName = "C:\\Text2.txt";
openFileDialog1->Filter =
" (*.txt)|*.txt|All files (*.*)|*.*";
saveFileDialog1->Filter =
" (*.txt)|*.txt|All files (*.*)|*.*";
}
private: System::Void ToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{
//
openFileDialog1->ShowDialog();
if (openFileDialog1->FileName == nullptr) return;
// :
try
{ // StreamReader
auto = gcnew
IO::StreamReader(openFileDialog1->FileName,
28. .
85
System::Text::Encoding::GetEncoding(1251));
// - Win1251
textBox1->Text = ->ReadToEnd();
->Close();
}
catch (IO::FileNotFoundException^ )
{
MessageBox::Show(->Message + "\n ",
"", MessageBoxButtons::OK,
MessageBoxIcon::Exclamation);
}
catch (Exception^ )
{
//
MessageBox::Show(->Message, "",
MessageBoxButtons::OK,
MessageBoxIcon::Exclamation);
}
}
private: System::Void ToolStripMenuItem_Click(
System::Object^ sender, System::EventArgs^ e)
{
//
saveFileDialog1->FileName = openFileDialog1->FileName;
if (saveFileDialog1->ShowDialog() ==
Windows::Forms::DialogResult::OK) ();
}
void ()
{
try
{
// StreamWriter :
auto = gcnew
IO::StreamWriter(saveFileDialog1->FileName, false,
System::Text::Encoding::GetEncoding(1251));
// - Win1251
->Write(textBox1->Text);
->Close(); textBox1->Modified = false;
}
catch (Exception^ )
{
//
MessageBox::Show(->Message, "",
MessageBoxButtons::OK,
MessageBoxIcon::Exclamation);
}
}
private: System::Void ToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
86
4 , ,
4.3 ()
{
this->Close();
}
private: System::Void Form1_FormClosing(System::Object^ sender,
System::Windows::Forms::FormClosingEventArgs^ e)
{ // :
if (textBox1->Modified == false) return;
// , , ?
auto MBox = MessageBox::Show(
" . \n ?",
" ", MessageBoxButtons::YesNoCancel,
MessageBoxIcon::Exclamation);
// YES ; NO ; CANCEL -
if (MBox == Windows::Forms::DialogResult::No) return;
if (MBox == Windows::Forms::DialogResult::Cancel) e->Cancel =
true;
if (MBox == Windows::Forms::DialogResult::Yes)
{
if (saveFileDialog1->ShowDialog() ==
Windows::Forms::DialogResult::OK)
{
(); return;
}
else e->Cancel = true; //
} // DialogResult::Yes
}
};
}
, . ,
(Open) (Save) (Filter) *.txt, *.*.
OpenFileDialog,
(nullptr), .
,
Windows 1251.
(. . 4.2). SaveFileDialog ,
OK ( ), (). , . ()
. , () (Try)
textBox1->Modied = false. Modied
. ,
false.
28. .
87
, . (.
, 3.3),
Windows, Alt+F4, ( ) (
FormClosing).
FormClosing,
. :
Application::Exit(), this->Close(). ?
Application::Exit() FormClosing.
(, ,
. .) :
1. textBox1->Modied.
2. ,
.
3. (textBox1->Modied =
true), ,
(. 4.3).
. 4.3.
, . 4.4.
. 4.4.
88
4 , ,
(Cancel).
,
. (. 4.3)
FormClosing e->Cancel,
true, (
), Form1_FormClosing .
, ,
, (
Alt+F4),
: e->Cancel = true.
, Form1_FormClosing, ,
.
,
.
29.
-
, ,
. . , ,
- ,
. , , , ,
, .
4.4.
4.4.
1/6. :
, , , , ;
, , ,
, , , ,
3
2/6. :
29. -
89
3
3/6. :
- - - - -
- - - - -
- - - - -
1
4/6. ,
1 = 1024 ; 1 = 1024
1 ; 1 = 8
1 ; 1 = 1024
3
5/6. -1,84E-04 :
-0,000184
-0,00184
-18400
1
6/6. :
FAT, NTFS .
Windows 1251, Unicode, ASCII .
SQL
2
:
, . .
.
-, ,
test_.txt, .
4.4, .
1, 2 3 .
, . ,
4/6, , ,
, ,
.
, , .
Visual Studio 2010 New Project CLR Visual C++
Windows Forms Application Visual C++. , RadioButton.
( 4.5).
4.5.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
90
4 , ,
4.5 ()
#pragma endregion
// -
int ;
//
int ;
//
int ; //
// , :
array<String^>^ ;
int ; //
int ;
// ,
IO::StreamReader^ ;
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
button1->Text = " ";
button2->Text = "";
// "
// RadioButton:"
radioButton1->CheckedChanged +=
gcnew EventHandler(this, &Form1::);
radioButton2->CheckedChanged +=
gcnew EventHandler(this, &Form1::);
radioButton3->CheckedChanged +=
gcnew EventHandler(this, &Form1::);
();
}
void ()
{
System::Text::Encoding^ =
System::Text::Encoding::GetEncoding(1251);
try
{ // StreamReader
= gcnew IO::StreamReader(
IO::Directory::GetCurrentDirectory()
+ "\\test.txt", );
this->Text = ->ReadLine(); //
// :
= 0; = 0; = 0;
= gcnew array<String^>(100);
}
catch (Exception^ )
{ //
MessageBox::Show(->Message, "",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
();
}
void ()
{
label1->Text = ->ReadLine();
29. -
91
// :
radioButton1->Text = ->ReadLine();
radioButton2->Text = ->ReadLine();
radioButton3->Text = ->ReadLine();
// , - :
= int::Parse(->ReadLine());
// "":
radioButton1->Checked = false; radioButton2->Checked = false;
radioButton3->Checked = false;
// ,
// :
button1->Enabled = false;
= + 1;
// , :
if (->EndOfStream == true) button1->Text = "";
}
private: Void (System::Object^ sender, System::EventArgs^ e)
{ // " "
// :
button1->Enabled = true; button1->Focus();
RadioButton^ = (RadioButton^)sender;
String^ tmp = ->Name;
// , :
= int::Parse(tmp->Substring(11));
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
//
// " // "
// :
if ( == )
= + 1;
if ( != )
{ // :
= + 1;
// :
[] = label1->Text;
}
if (button1->Text == " ")
{
button1->Text = " ";
// , :
radioButton1->Visible = true; radioButton2->Visible = true;
radioButton3->Visible = true;
// :
(); return;
}
if (button1->Text == "")
92
4 , ,
4.5 ()
{
// :
->Close();
// :
radioButton1->Visible = false; radioButton2->Visible =
false;
radioButton3->Visible = false;
// :
label1->Text = String::Format(" .\n" +
" : {0} {1}.\n" +
" : {2:F2}.", ,
, ( * 5.0F) / );
// 5F -
button1->Text = " ";
// ,
String^ Str = " , " +
" :\n\n";
for (int i = 1; i <= ; i++)
Str = Str + [i] + "\n";
// ,
// MessageBox :
if ( != 0)
MessageBox::Show(Str, " ");
}
if (button1->Text == " ") ();
}
private: System::Void button2_Click(System::Object^ sender,
System::EventArgs^ e)
{
// ""
this->Close();
}
};
}
,
, Form1.
RadioButton .
.
test.txt,
, ,
.
, . , ,
. , . ,
.
29. -
93
, ,
.
,
, .
.
, , , ,
.
, , .
, , ( )
, MessageBox ,
.
. 4.5.
. 4.5.
. 4.6 ,
,
.
. 4.6.
, ,
Timer, .
94
4 , ,
,
, HTML. , .
, .sln .
30. RTF-
, , , Visual C++ 2010
RichTextBox ( ). -
RTF (
MS Word). RTF ,
, , ,
.
RTF-, RTF-,
Windows 1251,
RTF.
Toolbox RichTextBox, MenuStrip, SaveFileDialog
OpenFileDialog. ,
. 4.7: RTF, Win1251, RTF . 4.6.
4.6. RTF-
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// RTF-
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
Form1::Text = " RTF-"; richTextBox1->Clear();
openFileDialog1->FileName = "c:\\Text2.txt";
saveFileDialog1->Filter = " RTF (*.RTF)|*.RTF";
RTFToolStripMenuItem->Click += gcnew
EventHandler(this, &Form1::);
Win1251ToolStripMenuItem->Click += gcnew
EventHandler(this, &Form1::);
}
private: Void (System::Object^ sender, System::EventArgs^ e)
{ //
// .
// , :
ToolStripMenuItem^ t = (ToolStripMenuItem^)sender;
30. RTF-
95
// :
String^ = t->Text;
try
{ // - :
if ( == " RTF")
{
openFileDialog1->Filter =
" RTF (*.RTF)|*.RTF";
openFileDialog1->ShowDialog();
if (openFileDialog1->FileName == nullptr) return;
richTextBox1->LoadFile(openFileDialog1->FileName);
}
if ( == " Win1251")
{
openFileDialog1->Filter =
" (*.txt)|*.txt";
openFileDialog1->ShowDialog();
if (openFileDialog1->FileName == nullptr) return;
richTextBox1->LoadFile(openFileDialog1->FileName,
RichTextBoxStreamType::PlainText);
}
richTextBox1->Modified = false;
}
catch (IO::FileNotFoundException^ )
{
MessageBox::Show(->Message +
"\n ", "",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
catch (Exception^ )
{
//
MessageBox::Show(->Message, "",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
}
private: System::Void RTFToolStripMenuItem_Click(
System::Object^ sender, System::EventArgs^ e)
{
saveFileDialog1->FileName = openFileDialog1->FileName;
if (saveFileDialog1->ShowDialog() ==
Windows::Forms::DialogResult::OK) ();
}
Void ()
{
try
{
richTextBox1->SaveFile(saveFileDialog1->FileName);
richTextBox1->Modified = false;
}
96
4 , ,
4.6 ()
catch (Exception^ )
{ // :
MessageBox::Show(->Message, "",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
}
private: System::Void ToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{
this->Close();
}
private: System::Void Form1_FormClosing(System::Object^ sender,
System::Windows::Forms::FormClosingEventArgs^ e)
{ // :
if (richTextBox1->Modified == false) return;
// , , ?
auto MBox = MessageBox::Show(
" . \n ?",
" ", MessageBoxButtons::YesNoCancel,
MessageBoxIcon::Exclamation);
// YES ; NO ; CANCEL -
if (MBox==Windows::Forms::DialogResult::No) return;
if (MBox==Windows::Forms::DialogResult::Cancel) e->Cancel =
true;
if (MBox==Windows::Forms::DialogResult::Yes)
{
if (saveFileDialog1->ShowDialog() ==
Windows::Forms::DialogResult::OK)
{ (); return; }
else e->Cancel = true; //
} // - DialogResult::Yes
}
};
}
, .
(. ).
RTF Win1251.
18, 19 . (. 3). ,
, ,
sender. , , sender t ToolStripMenuItem. Text , .
,
30. RTF-
97
RTF, .
catch ,
, , RTF
, .
(. 4.7)
SaveFileDialog. (), ,
richTextBox1->Modied = True.
. 4.7. RTF-
() try...catch:
(try) (SaveFile) (catch) MessageBox.
,
.
Windows. .
, Exit Application ( , ). . , Application::Exit() Closing.
Application::Exit ( F11). ,
Application::Exit , , .
MessageBox, , ,
Application::Exit.
Close Form ( Windows Application),
: this->Close(). , this->Close
Closing. .
this->Close
. , return.
, Rtf.
sln Rtf.
98
4 , ,
31.
( )
,
. , DataGridView ( ) Toolbox.
,
.
,
( ) X, Y, U V. , .
, ,
, ( , , . .).
/ ('\t').
,
.
.
4.7 .
4.7.
167.5 437,5 13.8
217.5 437.5 62,5
120,0
131.2
182.5
210
240
162,5
191.2
211.2
240
160
225
161.2
187.5
212.5
241.2
100
101.2
113.8
68.8
61.2
82.5
88.8
40
65
25
28.8
32.5
42.5
413.8
410
415
387.5
372.5
390
388.8
357,5
367.5
341.2
340
337.5
341.2
35.0
62.5
90
21.2
52.5
67.5
96.5
26.2
86.2
31.2
56.2
81.2
108.8
, ;
, ;
( Tab).
Visual Studio 2010 New
Project CLR Visual C++ Windows Forms
31.
99
(. . 4.8).
4.8.
4.8.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// , .
// ,
// ( ).
// / .
// /
// ('\t').
// / .
//
//
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
// ,
// :
array<Double> ^X, ^Y, ^U, ^V;
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
{
int i, n;
try
{
textBox1->Size = Drawing::Size(223, 205);
auto =
// String ^ =
IO::Directory::GetCurrentDirectory();
// :
String ^ = IO::File::ReadAllText(
+ "\\convert1.txt");
// ,
// , :
= ->Replace(".", ",");
// :
= ->Replace('\t', ' ');
// :
array<Char> ^ 1 = { '\r', '\n' };
auto = ->Split(1,
StringSplitOptions::RemoveEmptyEntries);
100
4 , ,
4.8 ()
// , (""), ,
// , .
n = ->Length; // -
// (
// ) :
for (i = 0; i <= n - 1; i++) [i] = [i]->Trim();
// ,
// , - (""):
= String::Empty;
for (i = 0; i <= n - 1; i++) += [i] +
"\r\n";
// Split ,
// , RemoveEmptyEntries:
= ->Split(1,
StringSplitOptions::RemoveEmptyEntries);
// .
// \t - ,
// .
// ,
// .
n = ->Length;
array<Char> ^ 2 = { ' ', '\t' };
// :
X = gcnew array<Double>(n + 1);
Y = gcnew array<Double>(n + 1);
U = gcnew array<Double>(n + 1);
V = gcnew array<Double>(n + 1);
// :
bool A, B, C, D;
for (i = 0; i <= n - 1; i++)
{ // :
array<String^> ^ = [i]->Split(2,
StringSplitOptions::RemoveEmptyEntries);
A = Double::TryParse([0], X[i + 1]);
B = Double::TryParse([1], Y[i + 1]);
C = Double::TryParse([2], U[i + 1]);
D = Double::TryParse([3], V[i + 1]);
//
// TryParse , :
if ((A && B && C && D) == false) MessageBox::Show(
String::Format(" {0} - !",
i + 1), "", MessageBoxButtons::OK,
MessageBoxIcon::Exclamation);
}
this->Text = String::Format(" = {0};", n);
textBox1->Multiline = true; textBox1->Clear();
// :
for (i = 1; i <= n; i++)
31.
//
//
//
//
101
}
catch (IO::FileNotFoundException^ )
{
MessageBox::Show(" \n" + ->Message,
"", MessageBoxButtons::OK,
MessageBoxIcon::Exclamation);
}
catch (Exception ^ )
{
// :
MessageBox::Show(->Message, "",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
}
};
}
,
.
convert1.txt
, Replace.
(
Tab) . Split , ()
. RemoveEmptyEntries
, , ,
.
Length . ,
Visual Studio C# Visual Basic Count.
( Trim).
Split,
. ,
, ,
.
TryParse.
true .
(X, Y, U V), : A, B, C D.
() ,
102
4 , ,
TryParse .
.
. 4.8.
. 4.8.
, sln-
.
32.
( )
.
, , .
, ,
, .
.
, ,
. Windows
, ( ) (ReadOnly) .
, ,
: TextBox, MenuStrip : , , OpenFileDialog
PrintDocument. 4.9.
4.9.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// ,
//
32.
103
// (ReadOnly)
IO::StreamReader ^ ;
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
Form1::Text = " ";
textBox1->Multiline = true; textBox1->Clear();
textBox1->Size = Drawing::Size(268, 112);
textBox1->ScrollBars = ScrollBars::Vertical;
textBox1->ReadOnly = true;
// ,
// "..."
ToolStripMenuItem->Visible = false;
openFileDialog1->FileName = nullptr;
}
private: System::Void ToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{
// "":
openFileDialog1->Filter =
" (*.txt)|*.txt|All files (*.*)|*.*";
openFileDialog1->ShowDialog();
if (openFileDialog1->FileName == nullptr) return;
try
{ // StreamReader
= gcnew
IO::StreamReader(openFileDialog1->FileName,
System::Text::Encoding::GetEncoding(1251));
// - Win1251
textBox1->Text = ->ReadToEnd();
->Close();
ToolStripMenuItem->Visible = true;
}
catch (IO::FileNotFoundException^ )
{
MessageBox::Show(->Message +
"\n ", "",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
catch (Exception^ )
{ // :
MessageBox::Show(->Message, "",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
}
private: System::Void ToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{ // ""
try
104
4 , ,
4.9 ()
{
= gcnew
IO::StreamReader(openFileDialog1->FileName,
System::Text::Encoding::GetEncoding(1251));
// - Win1251
try { printDocument1->Print(); }
finally { ->Close(); }
}
catch (Exception^ )
{ MessageBox::Show(->Message); }
}
private: System::Void printDocument1_PrintPage(System::Object^ sender,
System::Drawing::Printing::PrintPageEventArgs^ e)
{ // (PrintPage):
Single = 0;
Single Y = 0;
Single = (Single)e->MarginBounds.Left;
Single = (Single)e->MarginBounds.Top;
String ^ = nullptr;
Drawing::Font ^ = gcnew Drawing::Font(
"Times New Roman", 12.0F);
//
= e->MarginBounds.Height /
->GetHeight(e->Graphics);
//
int i = 0; // -
while (i < )
{
= ->ReadLine();
if ( == nullptr) break; //
Y = + i *
->GetHeight(e->Graphics);
//
e->Graphics->DrawString(, , Brushes::Black,
, Y, gcnew StringFormat());
i = i + 1; // i += 1; -
}
// ,
if ( != nullptr) e->HasMorePages = true;
else e->HasMorePages = false;
}
private: System::Void ToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{
//
this->Close();
}
};
}
32.
105
, TxtPrint.sln TxtPrint.
106
4 , ,
33. /
- , . , () ,
(, ) . ,
, ,
. () , ,
, , .
,
.
.
.
. ,
.
. ,
.
, ,
,
. Toolbox
TextBox, Label : . ,
, . 4.10.
4.10.
4.10. /
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// /
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = " ";
label1->Text = " /";
label2->Text = " ..";
label3->Text = " ";
textBox1->Clear(); textBox2->Clear(); textBox3->Clear();
33. /
107
button1->Text = "";
button2->Text = "";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
//
//
if (IO::File::Exists("C:\\student.usp") == false) return;
//
IO::BinaryReader^ = gcnew IO::BinaryReader(
IO::File::OpenRead("C:\\student.usp"));
try
{
int _ = ->ReadInt32();
String ^ = ->ReadString();
Single = ->ReadSingle();
textBox1->Text = Convert::ToString(_);
textBox2->Text = Convert::ToString();
textBox3->Text = Convert::ToString();
}
finally { ->Close(); }
}
private: System::Void button2_Click(System::Object^ sender,
System::EventArgs^ e)
{
//
//
auto = gcnew IO::BinaryWriter(
IO::File::Open("C:\\student.usp", IO::FileMode::Create));
try
{
int _ = Convert::ToInt32(textBox1->Text);
String^ = Convert::ToString(textBox2->Text);
Single = Convert::ToSingle(textBox3->Text);
->Write(_);
->Write();
->Write();
}
finally { ->Close(); }
}
};
}
,
( ) :
, .
button2.Click,
(. . 4.10).
108
4 , ,
student.usp. ,
(Create), , . ,
OpenFileDialog
.
. 4.10. /
. _ int,
Convert::ToInt32 (
), ( )
Single,
Convert::ToSingle. . ->
Write . Finally
(Close) .
. , ,
, . C:\student.usp ,
(return) . ,
if, : , return.
if.
() .
student.usp,
.
ReadInt32 int, ReadString ReadSingle.
Convert::ToString. ,
,
. Finally (Close) . Finally
, return.
.
33. /
109
. :
catch (EndOfStreamException e)
.
, ReadWriteBin.
sln ReadWriteBin.
34.
- BMP, JPEG, PNG .
Visual Studio 2010 New Project CLR
Visual C++ Windows Forms Application Visual C++.
.
-. OnPaint.
OnPaint Form. , "this->" - ,
Form1. OnPaint ,
.
:
protected: virtual void
OnPaint. , .
poryv.png ( 5.1).
5.1. ( 1)
// ...............
// , , Visual Studio
// ,
this->Text = L"Form1";
this->ResumeLayout(false);
}
#pragma endregion
//
protected: virtual void OnPaint( PaintEventArgs^ e ) override
34.
111
{
Form1::Text = "";
//
this->Width = 200; this->Height = 200;
//
Image ^ = gcnew Bitmap("C:\\poryv.png");
//
e->Graphics->DrawImage(, 5, 5);
// x=5, y=5 -
// : x - , y -
}
};
}
,
Width Height, .
.
DrawImage, Graphics e OnPaint.
. 5.1.
, .
OnPaint OnPaint.
5.2.
,
. 5.1.
Properties
Form1 Paint.
Graphics e Paint.
5.2. ( 2)
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
//
private: System::Void Form1_Paint(System::Object^ sender,
System::Windows::Forms::PaintEventArgs^ e)
{ //
// Form1 Paint.
// Paint - :
this->Text = "";
// :
Image^ = Image::FromFile("C:\\poryv.png");
112
5.2 ()
// Image^ = gcnew Bitmap("C:\\poryv.png");
// :
e->Graphics->DrawImage(, 5, 5);
}
};
}
.
Graphics. 5.3.
5.3. ( 3)
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
//
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^
{
// :
Form1::Text = "";
button1->Text = " ";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
// " "
Image ^ = gcnew Bitmap("C:\\poryv.png");
// :
Graphics ^ = this->CreateGraphics();
// Graphics ^ = CreateGraphics();
->DrawImage(, 5, 5);
}
};
}
e)
35. PictureBox
113
35.
PictureBox
, , ,
BMP, JPEG, GIF, PNG PictureBox ( ). PictureBox.
SizeMode, StretchImage.
,
PictureBox. ,
. (AutoScroll),
PictureBox . Panel. ,
PictureBox Panel AutoScroll = true
PictureBox SizeMode = AutoSize, .
Visual Studio 2010 New Project CLR
Visual C++ Windows Forms Application Visual C++.
Toolbox Panel,
PictureBox. , 5.4.
5.4. PictureBox
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// PictureBox,
// Panel,
//
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = "C";
// :
panel1->Size = Drawing::Size(200, 151);
// :
pictureBox1->Image = Image::FromFile("C:\\Ris.JPG");
114
5.4 ()
// Image ^ = gcnew Bitmap("C:\\Ris.JPG");
// pictureBox1->Image = ;
// PictureBox :
pictureBox1->SizeMode = PictureBoxSizeMode::AutoSize;
// :
panel1->AutoScroll = true;
}
};
}
, . :
, Form1.h[Design]
. .
. 5.2.
, .
. 5.2.
36.
()
: , , , . .
,
. Visual Studio
: , Ox
, Oy .
, , ,
, , , .
ListBox ().
.
Visual Studio 2010 New Project CLR Visual C++ Windows Forms Application
Visual C++. Toolbox ListBox. ,
, ,
(Items) listBox1 ( 5.5).
36. ()
115
5.5.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// :
// , , , , ,
// .
// ListBox
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = " ";
listBox1->Items->AddRange(gcnew array<Object^> {"",
"", "", "",
"", "", " "});
Font = gcnew System::Drawing::Font("Times New Roman", 14.F);
}
private: System::Void listBox1_SelectedIndexChanged(
System::Object^ sender, System::EventArgs^ e)
{
//
// listBox1_Click.
//
Graphics ^ = this->CreateGraphics();
//
Pen ^ = gcnew Pen(Color::Red);
// ""
Brush ^ = gcnew SolidBrush(Color::Red);
//
//
->Clear(SystemColors::Control);
// ->Clear(Color::FromName("Control"));
// ->Clear(ColorTranslator::FromHtml("#EFEBDE"));
switch (listBox1->SelectedIndex) // :
{
case 0:
// - :
->DrawEllipse(, 50, 50, 150, 150); break;
case 1:
// - :
->DrawLine(, 50, 50, 200, 200); break;
case 2:
// - :
->DrawRectangle(, 50, 30, 150, 180); break;
case 3:
// - :
->DrawPie(, 40, 50, 200, 200, 180, 225); break;
case 4:
// - :
->DrawString(" - , \n" +
116
5.5 ()
" .",
Font, , 10, 100); break;
case 5:
// - :
->DrawEllipse(, 30, 30, 150, 200); break;
case 6:
// - :
->FillPie(, 20, 50, 150, 150, 0, 45); break;
}
}
};
}
,
listBox1 (
), ,
, . Control
#EFEBDE ( ), Clear() :
->Clear(SystemColors::Control);
Control . , Microsoft: Windows
. 5.3.
, .
sln .
37.
ListBox
, BackColor, ,
Visual Studio 2010, ListBox.
37. ListBox
117
, ,
Enum::GetNames, . () ListBox
AddRange. , (
F5). ListBox
KnownColor. ListBox,
(BackColor). KnownColor Control
( ), -
118
. 5.4.
for each
( 5.7).
5.7. ListBox ( 2)
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
//
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
// KnownColor.
// Enum::GetNames
// :
array<String^>^ = Enum::GetNames(KnownColor::typeid);
// :
listBox1->Items->Clear();
// listBox1:
for each (String^ s in )
if (s != "Transparent") listBox1->Items->Add(s);
// Transparent "",
//
}
37. ListBox
119
for each (,
Visual C# Visaul Basic foreach)
listBox1 , Transparent,
.
167 146 Color. , Visual Studio 2010
. Visual Studio RGB . (Red), (Green) (Blue) .
: 0 ,
(255) ,
. , Color::FromArgb(int red, int green, int
blue) , . () , 24 .
, 24 . ,
24 , 224 1 = 16 777 215 17 .
, , 24, 17
( ).
. , (
- - ).
, , . Pixie : http://natty.port5.com http://
www.nattyware.com. ,
HTML, #EFEBDE (
Control). ColorTranslator::FromHtml()
, () C++.
,
1 2.
120
38.
Visual Studio 2010, , .
, . ,
, ,
.
Visual Studio 2010 New Project CLR Visual C++ Windows Forms Application
Visual C++. .
Properties Form1.
, ,
Form1_Paint .
Form1.h Form1_Paint. ,
5.8.
5.8.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// ,
//
private: System::Void Form1_Paint(System::Object^ sender,
System::Windows::Forms::PaintEventArgs^ e)
{
// :
this->ClientSize = System::Drawing::Size(240, 200);
// :
Point p1 = Point(20, 20);
Point p2 = Point(225, 66);
Point p3 = Point(80, 185);
// :
array<Point>^ = { p1, p2, p3 };
// ControlDark :
e->Graphics->FillPolygon(gcnew SolidBrush(
SystemColors::ControlDark), );
// , :
this->TransparencyKey = SystemColors::ControlDark;
}
};
}
39.
121
,
. Graphics e. FillPolygon .
,
TransparencyKey.
. 5.5.
. 5.5.
,
MS Word.
,
.
39.
( ) . ,
: , , . . (. Graphics).
Visual Studio 2010 New
Project CLR Visual C++ Windows Forms
Application Visual C++. Toolbox
PrintDocument. 5.9.
5.9.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// ( ) . ,
//
// : , , .. (.
// Graphics)
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
printDocument1->Print();
}
private: System::Void printDocument1_PrintPage(System::Object^ sender,
System::Drawing::Printing::PrintPageEventArgs^ e)
{
//
122
5.9 ()
// (200, 250),
// 300 200
Pen ^ = gcnew Pen(Color::Red);
e->Graphics->DrawEllipse(, Rectangle(200, 250, 300, 200));
// e->Graphics->DrawEllipse(, 50, 50, 150, 150);
}
};
}
40. BMP-
, BMP. C: BMP C:\pic.bmp.
, .
, Visual Studio 2010 New Project CLR
Visual C++ Windows Forms Application Visual C++.
Toolbox Button
PrintDocument. 5.10.
5.10. BMP-
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// bmp
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = " C:\\pic.bmp";
button1->Text = "";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
//
41. JPG-
123
try
{
printDocument1->Print();
}
catch (Exception ^ )
{
MessageBox::Show(" \n",
->Message);
}
}
private: System::Void printDocument1_PrintPage(System::Object^ sender,
System::Drawing::Printing::PrintPageEventArgs^ e)
{
// , Print().
// BMP-
e->Graphics->DrawImage(Image::FromFile("C:\\pic.bmp"),
e->Graphics->VisibleClipBounds);
// ?
e->HasMorePages = false;
}
};
}
, printDocument1->Print. PrintPage,
printDocument1_PrintPage.
BMP- DrawImage.
, BMP.sln BMP.
41. JPG-
, - , -
, ,
.
, , ,
.
, , :
, Graphics
, .
Graphics ,
.
124
Visual Studio 2010 New Project CLR Visual C++ Windows Forms Application
Visual C++. _JPG. Toolbox
Button PictureBox. , 5.11.
5.11. , JPG
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// Graphics,
// JPG-
//
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
button1->Text = " ";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
pictureBox1->Size = System::Drawing::Size(215, 35);
// 215 x 35
// 24
Bitmap ^ = gcnew Bitmap(215, 35, System::Drawing::
Imaging:: PixelFormat::Format24bppRgb);
// Graphics
Graphics ^ = Graphics::FromImage();
// Graphics!
// :
->Clear(Color::FromName("Control"));
// :
String ^ = String::Format(" {0:D}", DateTime::Now);
// 356 :
->RotateTransform(356.0F);
// ,
// x=5, y=15 -
->DrawString(, gcnew System::Drawing::
Font("Times New Roman", 14,
FontStyle::Regular), Brushes::Red, 5, 15);
// risunok.jpg:
->Save("risunok.jpg",
System::Drawing::Imaging::ImageFormat::Jpeg);
// :
pictureBox1->BorderStyle = BorderStyle::None; // FixedSingle;
// :
42.
125
pictureBox1->Image = Image::FromFile("risunok.jpg");
// :
delete ; delete ;
// C#: ->Dispose(); ->Dispose();
}
};
}
,
, Format24bppRgb
, 24 : 8 ,
. Graphics FromImage.
356 RotateTransform .
Save JPEG. pictureBox1 .
. 5.6 .
. 5.6.
,
,
_JPG.
42.
-
.
Invalidate.
: ;
.
Visual Studio 2010 New Project CLR Visual C++ Windows Forms Application
Visual C++. . Toolbox
Button Panel. , Panel
.
Panel .
.
Form.h1[]
. () , Form1, panel1 button1, -
126
43.
private: System::Void button1_Click(System::Object^
System::EventArgs^ e)
{
// :
= + 30.0F;
// :
panel1->Invalidate();
}
};
127
sender,
,
panel1_Paint. , .
.
,
. , Invalidate,
button1_Click.
,
X , Y .
, X Y,
.
. 5.7.
. 5.7.
,
.
43.
, .
, ,
.
, . , .
, .
Visual Studio 2010 New Project CLR
Visual C++ Windows Forms Application Visual C++.
Toolbox Button.
, 5.13.
128
5.13.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
//
//
// ~ ~ ~ ~ ~ ~ ~
// _ :
bool _;
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^
{
this->Text = " ";
button1->Text = "";
_ = false; // -
}
private: System::Void Form1_MouseDown(System::Object^ sender,
System::Windows::Forms::MouseEventArgs^ e)
{
// - MouseDown,
_ = true;
}
private: System::Void Form1_MouseUp(System::Object^ sender,
System::Windows::Forms::MouseEventArgs^ e)
{
// ,
_ = false;
}
private: System::Void Form1_MouseMove(System::Object^ sender,
System::Windows::Forms::MouseEventArgs^ e)
{
// ,
if (_ == true)
{ // (e.X, e.Y)
Graphics ^ = CreateGraphics();
->FillRectangle(gcnew SolidBrush(Color::Red),
e->X, e->Y, 10, 10);
// 10x10
// e->X, e->Y
delete ; // C#: ->Dispose();
}
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
// :
Graphics ^ = CreateGraphics();
e)
43.
129
->Clear(this->BackColor);
// ->Clear(SystemColors::Control);
// ->Clear(Color::FromName("Control"));
// ->Clear(Color::FromKnownColor(KnownColor::Control));
// ->Clear(ColorTranslator::FromHtml("#EFEBDE"));
// this->Refresh(); //
}
};
}
, _
(bool) false. (_ = true) ( MouseMove),
(_ = false). _
Form1,
.
_ MouseUp ( , , _ = false), MouseDown
( , , _ = true).
Graphics System::Drawing, CreateGraphics(), FillRectangle(), , 10 10 .
e.X, e.Y ,
.
. 5.8 . , . Refresh(),
. ,
, CreateGraphics()
KnownColor::Control.
. 5.8.
,
Clear(Color::White), (White)
130
146 (::)
Color. 146 (BackColor). , Color::FromKnownColor.
Color::FromName(Control). ColorTranslator::FromHtml().
. #EFEBDE
.
, ,
. , .
, .
sln .
44.
Visual Studio 2010 . , DrawBezier ,
, .
, .
. 5.9 P0 P3 , P1 P2
.
. 5.9. P1 P2
P1 P2 ,
() . , , ,
, . www.msdn.com
, control points. control
. , ,
.
: , .
.
44.
131
Visual Studio 2010 New Project CLR Visual C++ Windows Forms Application
Visual C++. Spline.
( 5.14). ,
Form1.h[Design] , (Events), ,
.
5.14.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// ,
// () .
//
// . ,
// ()
// ~ ~ ~ ~ ~ ~ ~ ~
array<PointF> ^ ;
// :
Boolean ;
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
{
= false;
this->Text = " ";
= gcnew array<PointF>(4);
// :
[0] = PointF(50.0f, 50.0f);
// () , :
[1] = PointF(125.0f, 125.0f);
[2] = PointF(125.0f, 125.0f);
// :
[3] = PointF(200.0f, 200.0f);
}
private: System::Void Form1_Paint(System::Object^ sender,
System::Windows::Forms::PaintEventArgs^ e)
{
// e:
Graphics ^ = e->Graphics;
Pen ^ = gcnew Pen(Color::Blue, 3);
//
4 :
->DrawEllipse(,
[0].X - 2, [0].Y - 2, 4.0f, 4.0f);
132
5.14 ()
->DrawEllipse(,
[3].X - 2, [3].Y - 2, 4.0f, 4.0f);
// :
->Color = Color::Red;
->DrawRectangle(, [1].X - 2,
[1].Y - 2, 4.0f, 4.0f);
->Color = Color::Blue;
// :
->DrawBeziers(, );
delete ;
}
private: System::Void Form1_MouseMove(System::Object^ sender,
System::Windows::Forms::MouseEventArgs^ e)
{
// .
//
if (Math::Abs(e->X - [1].X) < 4.0f &&
Math::Abs(e->Y - [1].Y) < 4.0f &&
//
== true)
{ //
[1].X = (float)e->X;
[1].Y = (float)e->Y;
[2].X = (float)e->X;
[2].Y = (float)e->Y;
// () :
this->Invalidate();
}
}
private: System::Void Form1_MouseUp(System::Object^ sender,
System::Windows::Forms::MouseEventArgs^ e)
{
// ,
// :
= false;
}
private: System::Void Form1_MouseDown(System::Object^ sender,
System::Windows::Forms::MouseEventArgs^ e)
{
// ,
// :
= true;
}
};
}
( )
Form1,
45. Graphics
133
. .
,
, , .
, ,
true , ,
false.
, ,
( e) ( )
.
. 5.10.
. 5.10. ,
, Spline.sln
Spline.
45.
Graphics
, , ,
- , . ,
.
Visual Studio 2010 New Project CLR Visual C++ Windows Forms Application
Visual C++. Toolbox
PictureBox ( ) Button. , 5.15.
134
5.15.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// . ,
//
//
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
// ( ):
array<String^>^ Months;
array<int>^ Sales;
Graphics ^ ;
// , Bitmap,
// , PictureBox
Bitmap ^ ;
int , , , ;
int , , Y, Xmax, X;
// :
double ; int ;
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
Months = gcnew array<String^> {"", "", "", "",
"",
"", "", "", "",
"", "", ""};
Sales = gcnew array<int> {335, 414, 572, 629, 750, 931,
753, 599, 422, 301, 245, 155};
= 35; = 15;
= 20; = 10;
this->Text = " ";
button1->Text = " ";
this->ClientSize = System::Drawing::Size(593, 342);
= gcnew Bitmap(pictureBox1->Width, pictureBox1->Height,
pictureBox1->CreateGraphics());
// pictureBox1->BorderStyle = BorderStyle::FixedSingle;
Y = pictureBox1->Height - ;
Xmax = pictureBox1->Width - ;
= pictureBox1->Width - ( +
);
= Y - ;
= (double)( / Sales->Length);
= (int)( / 10);
X = + 30;
} // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
45. Graphics
135
136
5.15 ()
for (int i = 0; i <= Months->Length - 1; i++)
{
int X = X + (int)( * i);
->DrawLine(, X, ,
X, Y - 4);
}
delete ;
} // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
private: void ()
{
double = (double) / 1000;
// :
array<int>^ Y = gcnew array<int>(Sales->Length);
// :
array<int>^ X = gcnew array<int>(Sales->Length);
for (int i = 0; i <= Sales->Length - 1; i++)
{ // :
Y[i] = Y - (int)(Sales[i] * );
// , Y
//
X[i] = X + (int)( * i);
}
// :
Pen ^ = gcnew Pen(Color::Blue, 3);
->DrawEllipse(, X[0] - 2, Y[0] - 2, 4, 4);
for (int i = 0; i <= Sales->Length - 2; i++)
{ // :
->DrawLine(, X[i], Y[i], X[i + 1], Y[i + 1]);
// 2, () = 4:
->DrawEllipse(, X[i + 1] - 2, Y[i + 1] - 2,
4, 4);
}
} // ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
};
}
,
, . Months
,
.
. Sales ,
.
, .
Button
Graphics, PictureBox ( ),
, , ,
45. Graphics
137
.
, ,
, .
. , , ,
, , .
Y, ( x
, y ) ,
. XMax
(. . 5.7), .
X . , ,
, .
. 5.11.
. 5.11.
, .sln
.
46.
. -
(), .
, .
, .
- , ,
( Shift),
. ,
Ctrl+C.
-
,
(. 6.1). 6.1.
6.1.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// -
// ,
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^
e)
46.
139
{
this->Text = " ";
textBox1->Clear(); textBox2->Clear();
textBox1->TabIndex = 0;
button1->Text = " ";
button2->Text = " ";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
//
if (textBox1->SelectedText != String::Empty)
{
Clipboard::SetDataObject(textBox1->SelectedText);
textBox2->Text = String::Empty;
}
else
textBox2->Text = " ";
}
private: System::Void button2_Click(System::Object^ sender,
System::EventArgs^ e)
{
// -
IDataObject ^ = Clipboard::GetDataObject();
// ...
if (->GetDataPresent(DataFormats::Text) == true)
// Text
textBox2->Text = ->
GetData(DataFormats::Text)->ToString();
else
textBox2->Text = " - ";
}
};
}
,
, , (SelectedText) (Clipboard) () SetDataObject, (else)
textBox2 , .
, , ,
.
- .
- .
: (DataFormat::Text) . , TextBox2
, ToString.
.
. 6.1.
140
. 6.1.
, TXT.sln TXT.
47. PictureBox.
, , . PictureBox ( ),
, BMP, JPEG, PNG, GIF .
PictureBox GIF- ,
, .
GIF- , PictureBoxGif.sln
PictureBoxGif. PictureBox Flash SWF, ,
. , SWF
Microsoft WebBrowser, 8.
, PictureBox (, PNG).
. , , Paint Windows.
- ,
Paint, MS Office Picture Manager, ACDSee . ,
, .
Visual Studio 2010 New
Project CLR Visual C++ Windows Forms
Application Visual C++. Toolbox
PictureBox ( ) Button. 6.2.
6.2.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
47. PictureBox.
141
#pragma endregion
// ,
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
Form1::Text = " :";
button1->Text = " ";
// :
pictureBox1->Size = Drawing::Size(184, 142);
// PictureBox :
try
{
pictureBox1->Image = Image::FromFile(
IO::Directory::GetCurrentDirectory() + "\\poryv.png");
}
catch (IO::FileNotFoundException^ )
{
// :
MessageBox::Show(->Message + "\n ",
"", MessageBoxButtons::OK,
MessageBoxIcon::Exclamation);
button1->Enabled = false;
return;
}
//
Clipboard::SetDataObject(pictureBox1->Image);
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
// -
IDataObject ^ = Clipboard::GetDataObject();
Bitmap ^ ;
// Bitmap...
if (->GetDataPresent(DataFormats::Bitmap) == true)
{ //
// Bitmap:
= (Bitmap^)->GetData(DataFormats::Bitmap);
pictureBox1->Image = ;
}
}
};
}
.
- , Paint. - ,
142
- .
, .
. 6.2.
. ,
, .
. 6.2.
-
. , ,
, Bitmap.
,
Bitmap ,
Bitmap. ,
pictureBox1 , Image
.
, Bitmap.sln Bitmap.
48.
Alt+PrintScreen
, PrintScreen , screen shot ( screen capture).
(,
Paint) .
Alt+PrintScreen
, .
Alt+PrintScreen Visual Studio
System::Windows::Forms SendKeys,
,
Alt+PrintScreen.
, . , .
Alt+PrintScreen Send SendKeys.
,
. :
Paint .
6.3.
49. BMP-
143
6.3. Alt+<PrintScreen>
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// Alt+<PrintScreen>
// Send SendKeys
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = " Alt+<PrintScreen>";
button1->Text = " Send SendKeys";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
// SendKeys::Send
// Alt+<PrintScreen>
SendKeys::Send("%{PRTSC}");
// :
// String ^ QQ = Keys::PrintScreen.ToString();
}
};
}
. Send SendKeys Alt+PrintScreen.
PrintScreen {PRTSC}.
Alt+PrintScreen, : %{PRTSC}. :
http://msdn.microsoft.com/ru-ru/library/system.windows.forms.sendkeys.aspx
, AltPrintScreen.sln AltPrintScreen.
49.
BMP-
, , , BMP-.
Visual Studio 2010 New Project CLR
Visual C++ Windows Forms Application Visual C++.
144
Toolbox Button.
6.4.
6.4. BMP-
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// ,
// , BMP-
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = " BMP-";
button1->Text = "";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
// -
auto = Clipboard::GetDataObject();
Bitmap ^ ;
// Bitmap...
if (->GetDataPresent(DataFormats::Bitmap) == true)
{ // Bitmap
= (Bitmap^)->GetData(DataFormats::Bitmap);
// Clip.bmp
->Save("C:\\Clip.BMP");
//this->Text = " C:\\Clip.BMP";
//button1->Text = " ?";
MessageBox::Show
(" C:\\Clip.BMP",
"");
}
else
//
MessageBox::Show(
" Bitmap",
" - ");
}
};
}
-
. : ,
, Bitmap. ,
50. Timer
145
Bitmap
,
Bitmap. ,
Save(). ,
.
, SaveFileDialog.
. 6.3.
. 6.3.
, SaveBMP.sln SaveBMP.
50. Timer
(screen
shot) , . , (www.rentacoder.com).
100 . ,
, .
, :
ListBox,
, .
.
Visual Studio 2010 New Project
CLR Visual C++ Windows Forms Application
Visual C++. Toolbox
Timer ListBox. 6.5.
6.5.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
146
6.5 ()
#pragma endregion
// Timer.
// ListBox.
// 2
// , 2
//
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = "Timer";
timer1->Interval = 2000; // - 2
//
timer1->Enabled = true; // -
}
private: System::Void timer1_Tick(System::Object^ sender,
System::EventArgs^ e)
{
listBox1->Items->Add(" ");
}
};
}
Timer
, Tick.
(Interval), 2000 ( ).
Tick, listBox1
. , . . 6.4
.
. 6.4.
,
Timer.sln Timer.
51.
, . :
Pic1.BMP, ..., Pic5.BMP.
, . ,
51.
147
Timer, Alt+PrintScreen
, ,
BMP.
Visual Studio 2010 New Project
CLR Visual C++ Windows Forms Application Visual C++.
Timer Button. 6.6.
6.6. 5
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
//
// Pic1.BMP, Pic2.BMP
// . .
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
int i; //
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
i = 0; //
this->Text = " 5 ";
button1->Text = "";
}
private: System::Void timer1_Tick(System::Object^ sender,
System::EventArgs^ e)
{
i = i + 1;
this->Text = String::Format(" {0} ", i);
if (i >= 28) { timer1->Enabled = false; this->Close(); }
if (i % 5 != 0) return;
// Alt+<PrintScreen>
SendKeys::Send("%{PRTSC}");
// -
auto = Clipboard::GetDataObject();
Bitmap ^ ;
// Bitmap,
//
if (->GetDataPresent(DataFormats::Bitmap) == true)
{ //
Bitmap
= (Bitmap^)->GetData(DataFormats::Bitmap);
//
// C:\Pic1, C:\Pic2, C:\Pic3, ...
148
6.6 ()
String ^ = String::Format("C:\\Pic{0}.BMP", i / 5);
->Save();
}
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
this->Text = String::Format(" 0 ");
timer1->Interval = 1000; //
timer1->Enabled = true; //
}
};
}
, button1_Click Timer1_Tick.
i, ,
, .
Interval, 1000 ,
. timer1->Enabled = true,
timer1_Tick(), .
timer1_Tick i,
. i % 5 . ,
i , ,
Alt+PrintScreen .
,
Save5.
.
52. .
String::Format
,
, ( ),
.
: , .
,
. ,
. ,
: Imena Tel.
TextBox. ,
MenuStrip ,
(notepad.exe) ()
.
Visual Studio 2010 New Project CLR Visual C++ Windows Forms Application
Visual C++.
: TextBox Multiline =
true MenuStrip , .
7.1.
150
7 .
7.1.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
//
// , String::Format. ,
// MenuStrip
// ,
//
//
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->textBox1->Multiline = true;
this->textBox1->Size = Drawing::Size(320, 216);
this->ClientSize = Drawing::Size(342, 266);
this->Text = " ";
array<String^>^ Imena = {" - ", "-X", "",
" ", " ",
" - ", " ",
" ", " "};
array<String^>^ Tel = {"274-88-17","+38(067)7030356",
"22-345-72", "009", "223-67-67 32-67",
"570-38-76", "201-72-23- ",
"001", "216-40-22"};
textBox1->ScrollBars = ScrollBars::Vertical;
textBox1->Font = gcnew Drawing::Font("Courier New", 9.0F);
textBox1->Text = " \r\n\r\n";
for (int i = 0; i <= 8; i++)
textBox1->Text += String::Format(
"{0, -21} {1, -21}", Imena[i], Tel[i]) + "\r\n";
textBox1->Text += "\r\n:" +
"\r\n " +
"\r\n Courier New";
// C:\Table.txt.
// StreamWriter
auto = gcnew IO::
StreamWriter("C:\\Table.txt", false,
System::Text::Encoding::GetEncoding(1251));
// - Win1251
->Write(textBox1->Text);
->Close();
}
private: System::Void ToolStripMenuItem_Click(
System::Object^ sender, System::EventArgs^ e)
52. . String::Format
151
{
try
{
Diagnostics::Process::Start("Notepad", "C:\\Table.txt");
}
catch (Exception ^ )
{ //
MessageBox::Show(->Message, "",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
}
private: System::Void ToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{
// :
this->Close();
}
};
}
TextBox,
Courier New. ,
(, , .) ,
. , Courier New,
. , ,
Consolas.
for +=, :
textBox1->Text , . String::Format ,
. . :
Imena[i], Tel[i]. 21 ,
21 (
), . \r\n , .
. 7.1.
. 7.1.
152
7 .
textBox1->Text
C:\Table.txt StreamWriter Windows 1251. 26 (. 4).
. 7.2.
, .
(notepad.exe)
C:\Table.txt (. 7.2).
, Txt.
sln Txt.
53. Double-
. .
StringReader
, ,
String,
Double. , X Y.
. . .
TextBox.
. ,
.
: , Visual Studio 2010 New
Project CLR Visual C++ Windows Forms
Application Visual C++.
Toolbox TextBox,
MenuStip PrintDocument. Design ,
. 7.3. ,
Multiline True ( ).
7.2.
53. Double-
153
7.2.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
//
// .
// TextBox.
//
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
IO::StringReader ^ ; // -
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = " ";
Double X[] = {5342736.17653, 2345.3333, 234683.853749,
2438454.825368, 3425.72564, 5243.25,
537407.6236, 6354328.9876, 5342.243};
Double Y[] = {27488.17, 3806703.356, 22345.72,
54285.34, 2236767.3267, 57038.76,
201722.3, 26434.001, 2164.022};
// :
// array<Double> ^ Y = {27488.17, 3806703.356, 22345.72,
//
54285.34, 2236767.3267, 57038.76,
//
201722.3, 26434.001, 2164.022};
textBox1->Multiline = true;
textBox1->ScrollBars = ScrollBars::Vertical;
textBox1->Font = gcnew Drawing::Font("Courier New", 9.0F);
textBox1->Text = " \r\n";
textBox1->Text += "---------------------------------\r\n";
textBox1->Text += "||
X
Y
|\r\n";
textBox1->Text += "---------------------------------\r\n";
for (int i = 0; i <= 8; i++)
textBox1->Text += String::Format(
"| {0,3:D}{1,10:F2}{2,10:F2} |",
i, X[i], Y[i]) + "\r\n";
textBox1->Text += "---------------------------------\r\n";
}
private: System::Void ToolStripMenuItem_Click(
System::Object^ sender, System::EventArgs^ e)
{
// ""
try
{ // :
= gcnew IO::StringReader(textBox1->Text);
try
154
7 .
7.2 ()
{
printDocument1->Print();
}
finally
{
->Close();
}
}
catch (Exception ^ )
{
MessageBox::Show(->Message);
}
}
private: System::Void ToolStripMenuItem_Click(
System::Object^ sender, System::EventArgs^
{
//
this->Close();
}
};
e)
,
for String::Format. 0, 1 2
, i, X[i], Y[i].
3:D , i
D. 10:F2 , X(i)
.
. 7.3.
(. 7.3) try...
naly...catch , ,
textBox1->Text. , ,
155
().
, 31 (. 4).
, , (
),
.
,
TxtPrint.
HTML,
<HTML>, <HEAD>, <TITLE> . .,
, 7.3.
<tr> (, )
<td> (, ).
, - htm
- Internet Explorer, Mozilla Firefox
. HTML
156
7 .
e)
157
try
{
Diagnostics::Process::Start("Iexplore",
"C:\\Tabl_tel.htm");
// HTM MS_WORD:
// Diagnostics::Process::Start("WinWord",
//
"C:\\Tabl_tel.htm");
}
catch (Exception ^ )
{
//
MessageBox::Show(->Message, "",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
}
};
}
. 7.4.
158
7 .
HTM- -, MS Word, :
Diagnostics::Process::Start("WinWord", "C:\\Tabl_tel.htm")
. ,
_HTM.sln _HTM.
55.
DataGridView
,
, DataGridView ( ). DataGridView .
Visual Studio 2010 New Project CLR
Visual C++ Windows Forms Application Visual C++, . DataGridView
( ) Toolbox.
Imena[] Tel[] DataGridView.
. 7.5.
7.5. DataGridView
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
//
// , DataGridView
// ( ). DataGridView
//
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
Form1::Text = " ";
array<String^> ^ Imena = {" - ", "-X", "",
" ", " ", " - ",
" ", " ", " "};
array<String^> ^ Tel = {"274-88-17", "+38(067)7030356",
"22-345-72", "009", "223-67-67 32-67", "570-38-76",
"201-72-23- ", "001", "216-40-22"};
// " "
DataTable ^ = gcnew DataTable();
56. -
159
// ""
->Columns->Add("");
->Columns->Add(" ");
// ()
for (int i = 0; i <= 8; i++)
->Rows->Add( Imena[i], Tel[i] );
//
dataGridView1->DataSource = ;
}
};
}
, DataTable.
, Columns>Add, , Rows->Add.
DataGridView, DataSource DataTable.
. 7.5. DataGridView
. 7.5 . , , ,
.
, Grid.
sln Grid.
56. DataGridView
, -,
, , .
. -,
. - .
- , ,
160
7 .
. -,
, .
,
, - , .
-. , ,
(txt, jpg, mdb, xls) ,
,
(Notepad.exe, Pbrush.exe, MSAccess.exe, Excel.exe). , IP-. -
ViewState Session ASP.NET.
: -
, . ,
DataGridView, - .
Visual Studio 2010 New Project CLR Visual C++ Windows Forms Application
Visual C++, Name GridView .
DataGridView ( ) Toolbox. Form1.h
, 7.6.
7.6. -
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// ,
// -.
// .
// , - . ,
// DataGridView,
// -
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
{
this->Text = " -";
// -:
System::Collections::Hashtable = gcnew
System::Collections::Hashtable();
// -.
// " - " :
[""] = "";
// :
.Add("", "");
// - , -
56. -
161
.Add("", "");
// ( ):
DataTable ^ = gcnew DataTable();
// , :
->Columns->Add("");
->Columns->Add("");
//
// - :
for each (System::Collections::DictionaryEntry in )
// DictionaryEntry
// " - "
->Rows->Add(.Key, .Value);
// DataGridView:
dataGridView1->DataSource = ;
}
};
}
Hashtable. , , , :
Add. DataTable,
-. -
DictionaryEntry,
-.
DataTable. , , dataGridView1 DataTable.
. 7.6.
. 7.6. -
, - ,
. -
,
, .
-: ,
, -
.
,
GridView.sln GridView.
162
7 .
57. .
DataGridView. DataTable. DataSet.
XML
, . , TextBox,
,
, . .
.
DataGridView ( ). ,
, ,
. , , DataGridView ,
DataGridView , , ,
.
, , , , , . .
XML.
C:\tabl.xml.
, . .
,
.
Visual Studio 2010 New Project
CLR Visual C++ Windows Forms Application
Visual C++. Toolbox : DataGridView Button.
7.7.
7.7.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
//
// , , , . .
//
// XML.
// C:\tabl.xml.
// ,
163
//
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
DataTable ^ ; // " "
DataSet ^ ; // " "
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = " ";
button1->Text = "";
= gcnew DataTable();
= gcnew DataSet();
if (IO::File::Exists("C:\\tabl.xml") == false)
{
// XML- :
dataGridView1->DataSource = ;
// ""
->Columns->Add("");
->Columns->Add(" ");
// DataSet
->Tables->Add();
}
else // XML- C:
{
->ReadXml("C:\\tabl.xml");
// DataSet XML :
String ^ XML = ->GetXml();
dataGridView1->DataMember = " ";
dataGridView1->DataSource = ;
}
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
// tabl.xml:
->TableName = " ";
->WriteXml("C:\\tabl.xml");
}
};
}
, .
ADO.NET.
: DataSet
DataTable. DataSet
ADO.NET. DataSet , . DataSet DataTable.
DataSet ,
WriteXml,
164
7 .
. 7.7.
, , XML-. (, Macintosh).
, .
XML MS Word,
. ,
UTF-8, , edit.com
Rpad32.exe ( ), . XML-
-, XML-editor ( Visual Studio 2010),
MS Office SharePoint Designer, MS Front Page .
. XML- MS Excel, .
. 7.8 XML- MS Word.
XML-
,
xml,
ReadXml XML-.
58.
165
. ,
() ,
DataTable: .Rows.Item(0).Item(0). ,
,
- , ADO.NET
. ,
DataSet.
, XML-. ,
.sln .
58.
.
DataGridView
, ().
,
. , , (
).
, DataGridView,
.
( -
166
7 .
,
). MessageBox.
, Visual Studio 2010 New Project CLR
Visual C++ Windows Forms Application Visual C++. (. 7.9) Label, TextBox,
DataGridView Button.
. 7.8
.
7.8.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// .
// DataGridView
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
// ,
// :
int n; // -
DataTable ^ ;
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = " ";
// :
textBox1->TabIndex = 0;
dataGridView1->Visible = false; //
label1->Text = " :";
button1->Text = ""; // -
= gcnew DataTable();
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
// :
array<double,2> ^ A = gcnew array<double,2>(n, n);
// :
array<double> ^ L = gcnew array<double>(n);
int i, j;
// :
bool _ = false;
String ^ tmp;
// -
if (button1->Text == "")
58.
167
{
for (; ; )
{ // ,
// :
_ = int::TryParse(textBox1->Text,
Globalization::NumberStyles::Integer,
Globalization::NumberFormatInfo::CurrentInfo, n);
if (_ == false) return;
// :
button1->Text = "";
// :
textBox1->Enabled = false;
// :
dataGridView1->Visible = true;
dataGridView1->DataSource = ;
// ""
for (i = 1; i <= n; i++)
{
tmp = "X" + Convert::ToString(i);
->Columns->Add(gcnew DataColumn(tmp));
}
// :
->Columns->Add(gcnew DataColumn("L"));
return;
}
}
else // button1->Text == "")
{
//
// ->Rows->Count -
if (->Rows->Count != n)
{
MessageBox::Show(
" ");
return;
}
// A[j, i]
for (j = 0; j <= n - 1; j++)
{
for (i = 0; i <= n - 1; i++)
{
A[j, i] = (j, i, _);
if (_ == false) return;
}
// B(j, 0)
L[j] = (j, i, _);
if (_ == false) return;
} // j
}
// A*x = L :
168
7 .
7.8 ()
gauss(n, A, L);
// L - ,
// x
String ^ s = " :\n";
for (j = 1; j <= n; j++)
{
tmp = L[j - 1].ToString();
s = s + "X" + j.ToString() + " = " + tmp + ";\n";
}
MessageBox::Show(s);
}
private: void gauss(int n, array<double,2> ^ A, array<double> ^ LL)
{
// n -
// A -
// LL - ,
int i, j, l = 0;
Double c1, c2, c3;
for (i = 0; i <= n - 1; i++) //
{
c1 = 0;
for (j = i; j <= n - 1; j++)
{
c2 = A[j, i];
if (Math::Abs(c2) > Math::Abs(c1))
{
l = j; c1 = c2;
}
}
for (j = i; j <= n - 1; j++)
{
c3 = A[l, j] / c1;
A[l, j] = A[i, j]; A[i, j] = c3;
} // j
c3 = LL[l] / c1; LL[l] = LL[i]; LL[i] = c3;
for (j = 0; j <= n - 1; j++)
{
if (j == i) continue;
for (l = i + 1; l <= n - 1; l++)
{
A[j, l] = A[j, l] - A[i, l] * A[j, i];
} // l
LL[j] = LL[j] - LL[i] * A[j, i];
} // j
} // i
}
58.
169
, (Visible = false) , . , , ( ),
,
.
. 7.9.
. gauss, . gauss
for .
.
gauss s
. s MessageBox (. 7.10).
, -
. 7.10.
170
7 .
, NaN,
.
.
. . ,
.
, Grid.
sln Grid.
59.
. -.
(. 7.11),
.
, () , , -, ,
.
, - (. 7.12).
,
.
(),
. (. . 7.11), +,
(. 7.13).
Visual Studio 2010 New Project CLR Visual C++ Windows Forms Application
Visual C++. .
DataGridView. , Visual Studio
2007 . 2007 DataGrid.
DataGridView , DataGrid. ,
DataGridView DataGrid.
DataGridView. , DataGrid
DataGridView, .
DataGridView.
DataGrid.
59.
171
, ToolBox DataGrid. ,
, DataGrid ,
.
. .NET Framework
DataGrid System.Windows.Forms.
OK ToolBox.
DataGrid . ,
Button ( ), .
7.9 .
7.9.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// ( ,
// ) ( , ,
// -).
// ( ).
// ,
// - .
// "". "" ,
//
// ~ ~ ~ ~ ~ ~ ~ ~
Boolean ;
System::Data::DataSet ^ ;
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
{
button1->Text = " "; button1->TabIndex=0;
Form1::Text = " "; = true;
// " ":
System::Data::DataTable ^ = gcnew DataTable("");
// :
DataColumn ^ = gcnew DataColumn(" ");
->ReadOnly = true; // -
// :
->Unique = true;
// :
->Columns->Add();
// :
->Columns->Add(" ");
->Columns->Add("");
// :
172
7 .
7.9 ()
= gcnew DataSet();
// "" :
->Tables->Add();
// () :
->Rows->Add(
"", " ", "095 345 22 37");
->Rows->Add(
"", " ", "050 456 21 03");
->Rows->Add(
"", " ", "067 456 56 72");
// " ":
= gcnew DataTable("");
// "":
DataColumn ^ 1 = gcnew DataColumn(" ");
1->DataType = System::Type::GetType("System.Int32");
1->ReadOnly = true; 1->Unique = true;
->Columns->Add(1);
// :
->Columns->Add(" ");
->Columns->Add("-");
->Tables->Add();
// () :
->Rows->Add(1, "230000", "");
->Rows->Add(2, "178900", "");
->Rows->Add(3, "300000", "");
->Rows->Add(4, "345000", "");
->Rows->Add(5, "308000", "");
// :
// :
DataColumn ^ = ->
Tables[""]->Columns[" "];
DataColumn ^ = ->
Tables[""]->Columns["-"];
DataRelation ^ 1 = gcnew DataRelation(
" ", , );
//
// , - .
->Tables[""]->ParentRelations->Add(1);
// D A T A G R I D:
dataGrid1->SetDataBinding(, "");
dataGrid1->CaptionText = " \"\"";
dataGrid1->CaptionFont = gcnew
System::Drawing::Font("Consolas", 11);
}
private: System::Void button1_Click(System::Object^
System::EventArgs^ e)
sender,
59.
173
{
// " ", "":
= !;
if ( == true)
{
dataGrid1->SetDataBinding(, "");
dataGrid1->CaptionText = " \"\"";
}
else
{
dataGrid1->SetDataBinding(, "");
dataGrid1->CaptionText = " \"\"";
}
}
};
}
, . DataTable, .
, , , .
.
.
( DataRelation), . DataSet
DataTable DataRelation.
DataSet - (SQL Server, MS Access,
Oracle) () , (), SQL-
.
Button,
.
. 7.117.13.
. 7.11.
174
7 .
. 7.12.
. 7.13.
, .sln .
60.
Chart
, Toolbox.
Chart.
().
, DataTable.
. .
.
Visual Studio 2010 New Project CLR Visual C++ Windows Forms Application
Visual C++. Chart. ToolBox
: Chart
DataGridView. ,
, , . Chart. ,
Chart ,
. Properties
60. Chart
175
() Click.
,
. 7.10
.
7.10. Chart
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// , Chart DataGridView,
// () .
// DataTable
// ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
// :
Boolean ;
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
{
= false;
this->Text = " ";
DataTable ^ = gcnew DataTable();
// "" "
":
->Columns->Add("", String::typeid);
// C#: .Columns.Add("", typeof(String));
// long:
->Columns->Add(" ", long::typeid);
// C#: .Columns.Add(" ", typeof(long));
// () :
DataRow ^ = ->NewRow();
[""] = ""; [" "] = 15;
->Rows->Add();
// :
= ->NewRow();
[""] = ""; [" "] = 35;
->Rows->Add();
// :
= ->NewRow();
[""] = ""; [" "] = 65;
->Rows->Add();
// :
= ->NewRow();
[""] = ""; [" "] = 85;
->Rows->Add();
// :
176
7 .
7.10 ()
= ->NewRow();
[""] = ""; [" "] = 71;
->Rows->Add();
// :
chart1->DataSource = ;
// .
// , -
// 2009 , -
// 2010 .
// ,
// "Series1"
// :
chart1->Series["Series1"]->XValueMember = "";
// :
chart1->Series["Series1"]->YValueMembers = " ";
// ():
chart1->Titles->Add(" ");
// - :
chart1->Series["Series1"]->ChartType = System::Windows::Forms::
DataVisualization::Charting::SeriesChartType::Column;
// , : Pie, Line .
chart1->Series["Series1"]->Color = Color::Aqua;
// :
chart1->Series["Series1"]->IsVisibleInLegend = false;
// :
chart1->DataBind();
//
dataGridView1->DataSource = ;
}
private: System::Void chart1_Click(System::Object^
sender,
System::EventArgs^
e)
{
// " "
= !;
// :
if ( == true)
chart1->Series["Series1"]["DrawingStyle"] = "Cylinder";
else
chart1->Series["Series1"]["DrawingStyle"] = "Default";
}
};
}
DataTable. . , DataGridView. DataTable
DataGridView, Chart.
60. Chart
177
DataTable ,
. (),
Add.
Chart DataGridView. , .
. 7.14.
. 7.14.
, Chart.
sln Chart.
WebBrowser
61. HTML-
WebBrowser
, ( Windows-),
(, exe-), -, .
Toolbox WebBrowser,
- Windows-.
WebBrowser , HTML :
<tr>, , <td>, .
, HTML-, ,
, WebBrowser
Navigate .
, , HTML -
, WebBrowser,
HTML-. .
. Visual Studio 2010 New Project CLR Visual C++
Windows Forms Application Visual C++. Toolbox
WebBrowser, .
8.1.
8.1. WebBrowser
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
179
#pragma endregion
//
// WebBrowser. HTML
// <tr> ( ) <td> ( )
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
// ( ) :
webBrowser1->Dock = DockStyle::None;
// webBrowser1.Navigate("c:\\table.htm");
String ^ HTML = "- " +
"<table border> " +
"<caption> </caption> " +
"<tr><td> <td>274-88-17 " +
"<tr><td>-X<td>+38(067)7030356 " +
"<tr><td><td>22-345-72 " +
"<tr><td> <td>009 " +
"</table> " +
"- ";
webBrowser1->Navigate("about:" + HTML);
}
};
}
, . HTML
HTML- ,
. Navigate WebBrowser1, about:. ,
Navigate ,
table.htm.
WebBrowser, . 8.1.
. 8.1. WebBrowser
180
8 WebBrowser
, ,
.
, WebHTM.sln WebHTM.
62. Flash-
PictureBox,
. PictureBox
Flash- SWF.
,
, , SWF- .
,
WebBrowser SWF. Visual Studio 2010
New Project CLR Visual C++ Windows Forms
Application Visual C++. Toolbox WebBrowser
. , ,
,
. 8.2.
8.2. Flash-
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// WebBrowser
// Flash-
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
// ( ) :
webBrowser1->Dock = DockStyle::None;
// webBrowser1.Navigate("www.mail.ru");
String ^ = IO::Directory::
GetCurrentDirectory() + "\\Shar.swf";
//
if (IO::File::Exists() == false)
{
MessageBox::Show(
" " + + " ", "");
return;
}
63. - HTML-
181
webBrowser1->Navigate();
}
};
}
, Navigate webBrowser1.
Flash- Shar.swf.
GetCurrentDirectory(). ,
- WebBrowser.
Shar.swf
(. 8.2).
, , . , FlashWeb.sln FlashWeb.
63. -
HTML-
C++ , -,
, , HTML- .
WebBrowser.
, WebBrowser,
(. 8.3).
Visual Studio 2010 New Project CLR
Visual C++ Windows Forms Application Visual C++.
, WebBrowser ,
. textBox1 URL- - (, www.latino.
ho.ua), textBox2 , HTML .
, (Properties) Multiline =
True. 8.3.
182
8 WebBrowser
8.3. - HTML-
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// WebBrowser
// - HTML-
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^
{
this->Text = "- HTML-";
textBox1->Text = String::Empty;
textBox2->Text = String::Empty;
textBox2->Multiline = true;
textBox2->ScrollBars = ScrollBars::Vertical;
button1->Text = "";
webBrowser1->Dock = DockStyle::None;
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
// " ":
webBrowser1->Navigate(textBox1->Text);
// webBrowser1->Navigate("www.latino.ho.ua")
// webBrowser1->GoBack()
//
// webBrowser1->GoForward() //
// webBrowser1->GoHome()
//
}
private: System::Void webBrowser1_DocumentCompleted(
System::Object^ sender, System::Windows::
Forms::WebBrowserDocumentCompletedEventArgs^ e)
{
// "- "
// HTML- WebBrowser:
textBox2->Text = webBrowser1->Document->Body->InnerHtml;
}
};
}
e)
,
. ScrollBars, , Vertical,
.
Navigate
webBrowser1 -
, textBox1.
64. -
183
. , GoBack -,
GoForward , GoHome
-.
, , ,
.
DocumentCompleted , , .
Body->innerHTML Text
textBox2 HTML-, -.
. 8.3 .
. 8.3. - HTML-
, Split.sln
Split.
64. -
, ,
WebBrowser, - -,
-. (,
, ,
.).
Submit ( -) -
184
8 WebBrowser
. WebBrowser , . ,
.
,
Yandex, Rambler, Google .
Visual Studio 2010 New Project CLR Visual C++ Windows Forms Application
Visual C++. Toolbox
WebBrowser. () HTML, -,
Microsoft.mshtml.dll.
, Microsoft , ,
, . , . , , : C:\Program Files\Microsoft Visual Studio 10.0\
Visual Studio Tools for Ofce\PIA\Common.
Project Add Reference, .NET Microsoft.mshtml.
Properties References ()
.
,
8.4.
8.4.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// WebBrowser
// http://yahoo.com. ,
// DomDocument ( WebBrowser),
// IHTMLDocument2.
// - .
// -,
// ""
// Submit. WebBrowser
// , ,
//
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
this->Text = " ";
64. -
185
// *** "http://google.com":
//String ^ = "http://google.com"
//String ^ = "f";
//String ^ = "q";
// "http://meta.ua":
//String ^ = "http://meta.ua";
//String ^ = "sForm";
//String ^ = "q";
// *** "http://yandex.ru":
//String ^ = "http://yandex.ru";
//String ^ = "form";
//String ^ = "text";
// *** "http://rambler.ru":
//String ^ = "http://rambler.ru";
//String ^ = "rSearch";
//String ^ = "query";
// *** "http://aport.ru":
//String ^ = "http://aport.ru";
//String ^ = "aport_search";
//String ^ = "r";
// *** "http://bing.com":
//String ^ = "http://bing.com";
//String ^ = "sb_form";
// - HTML- name , id = "sb_form"
//String ^ = "q";
// *** "http://yahoo.com":
String ^ = "http://yahoo.com";
String ^ = "sf1"; // "p_13838465-searchform"
String ^ = "p"; // "p_13838465-p"
// - WebBrowser:
webBrowser1->Navigate();
while (webBrowser1->ReadyState !=
WebBrowserReadyState::Complete)
{
Application::DoEvents();
System::Threading::Thread::Sleep(50);
}
if (webBrowser1->Document == nullptr)
{
MessageBox::Show(
", ", "");
return;
}
// DomDocument IHTMLDocument2:
mshtml::IHTMLDocument2 ^ = (mshtml::
IHTMLDocument2 ^)webBrowser1->Document->DomDocument;
// -
// :
mshtml::HTMLFormElement ^ = (mshtml::
186
8 WebBrowser
8.4 ()
HTMLFormElement ^)->forms->item(, nullptr);
if ( == nullptr)
{
MessageBox::Show(String::Format(" " +
" \"{0}\" ", ), "");
return;
}
// () :
mshtml::IHTMLInputElement ^ = (mshtml::
IHTMLInputElement ^)->namedItem();
if ( == nullptr)
{
MessageBox::Show(String::Format(" " +
" \"{0}\" ", ), "");
return;
}
// :
String ^ = " Visual";
->value = ;
// "" "Submit":
->submit();
}
};
}
, .
Yahoo! -, ,
.
: Google, Meta, Yandex, Rambler, Aport Bing.
?
, Internet Explorer,
Yahoo!,
HTML-. HTML- . , Yahoo! <form>.
name, id.
. <form> </form> <input>, .
(type) text, hidden ().
name, id.
.
- ,
.
- WebBrowser,
DomDocument (
65. -
187
WebBrowser), IHTMLDocument2.
- .
-,
Submit. WebBrowser
, ,
(. 8.4).
. 8.4.
,
_.
65. -
WebBrowser
- - (
), WebBrowser.
, -
, -,
. ,
,
. ?
, www.cbr.ru.
,
, ,
. ,
WebClient,
, . ,
WebBrowser .
Visual Studio 2010,
New Project. New Project Visual C++ CLR, ( )
(Templates) Windows Forms Application Visual C++.
188
8 WebBrowser
OK. Tollbox
Label PictureBox.
.
WebClient, System.Net.dll.
Project Add Reference, .NET
System.Net. Properties References ()
.
,
8.5.
8.5. HTML- -
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// , WebClient, -
// www.cbr.ru,
// Label. ,
// " PictureBox" ,
// URL-
// ~ ~ ~ ~ ~ ~ ~ ~
// : ProjectProperties
// Add Reference, .NET System.Net
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
{
this->Text = " ";
// -:
auto = gcnew System::Net::WebClient();
// - Win1251,
// ,
// :
// auto =
//
System::Text::Encoding::GetEncoding(1251);
System::IO::Stream ^ ;
String ^ ;
try
{ // -:
= ->OpenRead("http://www.cbr.ru/");
}
catch (Exception ^ )
{
= String::Format(
"www.cbr.ru\r\n{0}", ->Message);
65. -
189
label1->Text = ;
return;
}
// HTML- -
// Unicode ( ):
auto = gcnew
System::IO::StreamReader(); //, );
// HTML- :
= ->ReadToEnd();
// HTML- :
int i = ->IndexOf(" ");
= ->Substring(i, 300);
i = ->IndexOf("nowrap");
= ->Substring(i + 7);
i = ->IndexOf(" ");
= ->Remove(i);
// :
= String::Format(" {0:D}: {1}",
DateTime::Now, );
->Close();
// :
label1->Text = ;
// :
pictureBox1->ImageLocation =
"http://www.cbr.ru/images/main_logo.gif";
}
};
}
, WebClient, -.
- Unicode. , , , -.
-, (
) .
, Windows1251, Encoding,
,
.
HTML- -,
.
. 8.5.
,
. 8.5.
.sln -
.
MS Word,
MS Excel, AutoCAD MATLAB,
PDF-
66.
MS Word
Microsoft Office OLE-,
.
. ,
- , . CheckSpelling
MS Word.
Visual Studio 2010 New Project CLR Visual C++ Windows Forms Application
Visual C++. Toolbox .
, Multiline True ( ).
Button. ,
. 9.1.
. 9.1.
66.
191
192
9.1 ()
auto = 1->Documents->Add(t, t, t, t);
// MS Word :
->Words->First->InsertBefore(textBox1->Text);
// :
->CheckSpelling(t, t, t, t, t, t, t, t, t, t, t, t);
// :
String ^ = ->Content->default;
// Visual Basic C#
// : = ->Content->Text;
// :
textBox1->Text = ->Replace("\r", "");
Object ^ tt = false;
// tt = Microsoft::Office::Interop::Word::
//
WdSaveOptions::wdDoNotSaveChanges;
1->Documents->Close(tt, t, t);
// Word :
1->Quit(tt, t, t);
1 = nullptr;
}
};
}
, .
Button1_Click
Word::Application, Documents->Add .
Type::Missing
. ( InsertBefore). CheckSpelling. ,
Word::Document,
Content->Text. Visual Basic C#,
: Content->Text.
Visual C++ , ,
default. .
MS Word wdDoNotSaveChanges, .
, . , F5, -
. ,
. 9.2.
,
,
.
9.2 ,
Selection.
66.
193
. 9.2.
9.2. ( 2)
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
//
//
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
textBox1->Clear(); button1->Text = " ";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
auto 1 =
gcnew Microsoft::Office::Interop::Word::Application();
1->Visible = false;
// "" :
auto t = Type::Missing;
// MS Word:
1->Documents->Add(t, t, t, t);
//
1->Selection->default = textBox1->Text;
// VB C# : 1->Selection->Text
// :
1->ActiveDocument->
CheckSpelling(t, t, t, t, t, t, t, t, t, t, t, t);
//
textBox1->Text = 1->Selection->default;
194
9.2 ()
Object ^ tt = false;
1->Documents->Close(tt, t, t);
// Word :
1->Quit(tt, t, t);
1 = nullptr;
}
};
}
Word::Application , Add, MS Word. 1.Selection, -
, , MS Word
( TypeText). Text MS Word.
: 1->Selection->Text.
, VB C#. C++ , ,
default. .
,
1 2.
67. MS Word
.
MS Word. ,
Visual C++ 2010 (Word, Excel, Access,
PowerPoint . .), AutoCAD CorelDRAW ,
VBA (Visual Basic for Applications),
,
, Visual C++/CLI ( Visual C#).
, VBA-. , ,
MS Word. MS Word,
,
OK. MS Word
, . .
.
Alt+F11 Microsoft Visual Basic,
VBA. ,
, , .
67. MS Word
195
196
9.3 ()
// MS Word:
auto = 1->Documents->Add(t, t, t, t);
// MS WORD :
1->Selection->TypeText(" ");
// , , :
System::Object ^ t1 = Microsoft::Office::Interop::
Word::WdDefaultTableBehavior::wdWord9TableBehavior;
// , Word
// :
System::Object ^ t2 = Microsoft::Office::Interop::
Word::WdAutoFitBehavior::wdAutoFitContent;
// 9 2 :
1->ActiveDocument->Tables->Add(1->Selection->Range,
9, 2, t1, t2);
// :
for (int i = 1; i <= 9; i++)
{
1->ActiveDocument->Tables[1]->Cell(i, 1)->
default->InsertAfter(Imena[i - 1]);
1->ActiveDocument->Tables[1]->Cell(i, 2)->
default->InsertAfter(Tel[i - 1]);
// C#, :
// 1.ActiveDocument.Tables[1].Cell(i, 2).
//
Range.InsertAfter(Tel[i - 1]);
}
// MS Word:
Object ^ t3 = Microsoft::Office::Interop::Word::WdUnits::wdLine;
// , MS Word:
Object ^ 9 = 9;
// (Selection) ,
// ( ), - :
1->Selection->MoveDown(t3, 9, t);
// :
1->Selection->TypeText("- ");
// , :
// Object ^ = "C:\\a.doc";
// 1->ActiveDocument->SaveAs(, t, t, t, t, t,
//
t, t, t, t, t, t, t, t, t, t);
}
};
}
, , 44
(. 7). ,
. : Imena[] Tel[]. Word::Application Document::Add.
Type::Missing
. , - -
197
C++-. ,
, Selection,
MS Word.
, () ,
(wdAutoFitContent).
(Selection) , - .
, MS Word (. 9.3),
, .
. 9.3. MS Word
, Word.sln Word.
68. MS Excel
Visual C++ 2010
- C++-
Microsoft Excel. MS Excel , , ,
, .
MS Excel, p = 3,14. p Math C++.
, , , MS Excel.
198
,
MS Excel.
Visual Studio 2010 New Project
CLR Visual C++ Windows Forms Application Visual C++. ,
.
MS Excel,
MS Excel. Project
Add Reference. , MS Office 2003,
COM Microsoft Excel 11.0 Object
Library. MS Office 2007, Microsoft
Excel 12.0 Object Library.
, , MS Word,
,
Visual Studio.
Solution Explorer ( ;
, Ctrl+Alt+L), Add Reference.
, MS Excel. Object Browser ( ). , Ctrl+Alt+J. WorksheetFunction,
Members of 'WorksheetFunction' MS Excel
WorksheetFunction. ,
Pi().
Form1.h[Design]
.
Form1.h
. , 9.4.
9.4. MS Excel
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
//
// MS Excel = 3,14...
// ~ ~ ~ ~ ~ ~ ~ ~
// Excel,
// Project Add Reference. ,
// MS Office 2007, COM
// Microsoft Excel 12.0 Object Library
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
69. MS Excel
199
{
// Excel::Application:
auto XL = gcnew Microsoft::Office::Interop::
Excel::Application();
double PI = XL->WorksheetFunction->Pi();
//
this->Text = "PI = " + PI;
XL->Quit();
}
};
}
, . Excel::Application,
MS Excel,
= 3,14.
. 9.4.
. 9.4.
, Excel.sln
Excel.
MS Excel C++-,
. , (
/ ),
MS Excel .
69.
MS Excel
MS Excel
Visual C++ 2010. , 100 . 15 % , 10 . , . MS Excel
(),
( 0.15/12), (120 )
($100 .). () ()
Pmt() WorksheetFunction, . ,
C#- Pmt()
MS Excel. () WorksheetFunction : http://msdn.
microsoft.com/en-us/library/bb225774.aspx.
200
,
Visual Studio 2010, MS Excel
WorksheetFunction .
Visual Studio 2010 New Project CLR
Visual C++ Windows Forms Application Visual C++. Toolbox ,
( Pmt()) .
MS Excel.
Project Add Reference, COM
Microsoft Excel 12.0 Object Library. ,
9.5.
9.5. MS Excel
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// Pmt()
// MS Excel
//
// ~ ~ ~ ~ ~ ~ ~ ~
// MS Excel Project
// Add Reference. ,
// MS Office 2007, COM
// Microsoft Excel 12.0 Object Library
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
{
this->Text = " ";
label1->Text = ". %";
label2->Text = " ";
label3->Text = " ";
textBox1->Clear(); textBox2->Clear(); textBox3->Clear();
button1->Text = "";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
try
{
auto XL = gcnew Microsoft::Office::Interop::
Excel::Application();
// "" :
auto t = Type::Missing;
// :
69. MS Excel
201
202
. 9.5.
, Excel.
sln Excel.
,
MS Excel .
Pmt() Visual Studio 2010 Microsoft::Visual
Basic::Financial . ( ,
Visual Basic 6.)
Visual Basic, 15 (. 2, ).
Microsoft.VisualBasic.dll.
Project Add Reference, .NET
Microsoft.VisualBasic. Pmt(), .
MS Excel
C++-.
70.
MS Excel
MS Excel, , Visual C++ 2010,
. , , :
X1 + X2 + X3 = 6
X1 + X2 = 3
X2 + X3 = 5
.
:
AX=L
A ; X
X1, X2, X3; L 6, 3, 5.
70. MS Excel
203
:
X = A1 L,
X1 .
MS Excel (), WorksheetFunction Microsoft
Excel MInverse().
() MMult(). Visual Studio 2010,
MS Excel.
Visual Studio 2010 New Project CLR Visual C++ Windows Forms Application Visual C++.
Toolbox Label.
. , MS Excel.
Project Add Reference COM
Microsoft Excel 12.0 Object Library, OK.
( 9.6):
()
. label1.
9.6.
MS Excel
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
//
// MS Excel
// ~ ~ ~ ~ ~ ~ ~ ~
// MS Excel Project
// Add Reference. ,
// MS Office 2007, COM
// Microsoft Excel 12.0 Object Library
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
{
// AX = L
// : X = A(-1)L.
// (-1) - "" .
//
// X1 + X2 + X3 = 6
204
9.6 ()
// X1 + X2
= 3
//
X2 + X3 = 5
// :
// array<double,2> ^ A = gcnew array<double,2>(n, n);
array<double,2> ^ A = { {1, 1, 1},
{1, 1, 0},
{0, 1, 1} };
// :
// array<double> ^ L = gcnew array<double>(n);
// :
array<double> ^ L = { 6, 3, 5 };
// Excel::Application:
auto XL1 = gcnew Microsoft::Office::Interop::
Excel::Application();
//
double det_A = XL1->Application->WorksheetFunction->MDeterm(A);
// det_A != 0, :
if (Math::Abs(det_A) < 0.01)
{
label1->Text = " , \n\n" +
" ";
return;
}
// oA:
Object ^ oA = XL1->Application->
WorksheetFunction->MInverse(A);
// Transpose
// :
Object ^ L = XL1->Application->
WorksheetFunction->Transpose(L);
// :
Object ^ X =
XL1->Application->WorksheetFunction->MMult(oA, L);
// ,
// :
array<Object^,2> ^ Xd = (array<Object^,2> ^)X;
// ,
// :
label1->Text = String::Format(
" :\n\nX1 = {0}; X2 = {1}; X3 = {2}.",
Xd[1, 1], Xd[2, 1], Xd[3, 1]);
}
};
}
, , . ( ) .
WorksheetFunction
71. MS Excel
205
. () , MS Excel Mdeterm().
,
0.01,
label1, .
0.01, MS Excel
MInverse() . ( ) , MS Excel
Transpose ( L).
MS Excel MMult() .
MMult() ,
( ).
label1.
. 9.6. , Excel.sln
Excel.
,
MS Excel. ,
. 9.6.
,
MS Excel.
dll-.
71.
MS Excel
- (, , )
(), , .
.
MS Excel , , , , .
, ()
Visual C++ 2010, ( ) MS Excel.
Visual Studio 2010 New Project CLR
Visual C++ Console Application CLR, .
MS Excel. Project Add Reference,
COM Microsoft Excel 12.0 Object Library
OK. ,
9.7.
206
9.7. MS Excel
// Excel.cpp: .
// (),
// MS Excel
#include "stdafx.h"
using namespace System;
// :
using namespace Microsoft::Office::Interop::Excel;
// MS Excel Project
// Add Reference. COM
// Microsoft Excel 12.0 Object Library
int main(array<System::String ^> ^args)
{
// Excel::Application:
_Application ^ XL1 = gcnew Application();
XL1->Visible = true;
// " "
// :
Object ^ t = Type::Missing;
// MS Excel:
Workbook ^ = XL1->Workbooks->Add(t);
// :
Sheets ^ = ->Worksheets;
// :
_Worksheet ^ = (_Worksheet ^)->Item[1];
// () :
// _Worksheet ^ = safe_cast<_Worksheet^>(->Item[ (Object^)1 ]);
// :
->Range["A1", t]->Value2 = "";
->Range["A2", t]->Value2 = "";
->Range["A3", t]->Value2 = "";
->Range["A4", t]->Value2 = "";
->Range["A5", t]->Value2 = "";
->Range["A6", t]->Value2 = "";
->Range["B1", t]->Value2 = "";
->Range["B2", t]->Value2 = 138;
->Range["B3", t]->Value2 = 85;
->Range["B4", t]->Value2 = 107;
->Range["B5", t]->Value2 = 56;
->Range["B6", t]->Value2 = 34;
// () :
_Chart ^ = (_Chart ^)XL1->Charts->Add(t, t, t, t);
// :
->SetSourceData(->Range["A2", "B6"], XlRowCol::xlColumns);
// " " ():
->ChartType = XlChartType::xlColumnClustered;
// :
->HasLegend = false;
// :
->HasTitle = true;
->ChartTitle->Caption = " ";
71. MS Excel
207
// X:
Axis ^ = (Axis^)->Axes(
XlAxisType::xlCategory, XlAxisGroup::xlPrimary);
->HasTitle = true;
->AxisTitle->Text = "";
// Y:
Axis ^ = (Axis^)->Axes(
XlAxisType::xlValue, XlAxisGroup::xlPrimary);
->HasTitle = true;
->AxisTitle->Text = " ";
// :
// XL1->ActiveChart->Export("C:\\Excel.jpg", t, t);
return 0;
}
Excel::Application . : i , i .
_Chart. , ,
Chart. , ,
, ,
.
, .
xlColumnClustered,
( ).
.
jpg-
Export(). 9.7, Excel . 9.8.
. 9.7. jpg-
208
. 9.8. MS Excel
, Excel.
sln Excel.
72. AutoCAD
Visual C++ 2010
-
( , ,
.),
AutoCAD C++-. AutoCAD (Computer-Aided
Design) -
. , Microsoft Office,
OLE-,
.
, ,
, , ,
, , . , , .
C++ 2010, AutoCAD,
dwg-.
AutoCAD, .
.
,
. Visual Studio 2010 New Project CLR Visual C++ Console Application CLR.
AutoCAD,
Project Add Reference, COM ,
AutoCAD 2008 Type Library, AutoCAD/ObjectDBX Common
17.0 Type Library..
, AutoCAD 2008. AutoCAD,
. , dwg- , ,
209
, 9.8.
9.8. AutoCAD
// ACAD.cpp: .
// AutoCAD
// .
// DWG. : AutoCAD 2008,
// , ,
// C:\.dwg AutoCAD
// ~ ~ ~ ~ ~ ~ ~ ~
// AutoCAD.
// ProjectAdd Reference COM AutoCAD 2008 Type Library,
// AutoCAD/ObjectDBX Common 17.0 Type Library
#include "stdafx.h"
using namespace System;
// AutoCAD 2008 Type Library COM:
using namespace AutoCAD;
// AutoCAD/ObjectDBX Common 17.0 Type Library:
using namespace AXDBLib;
int main(array<System::String ^> ^args)
{
// AutoCAD::AcadApplication:
AcadApplication ^ ACAD1 = gcnew AcadApplication();
// " "
// :
Object ^ t = Type::Missing;
AcadDocument ^ = ACAD1->Documents->Add(t);
// :
ACAD1->Visible = true;
// :
array<double> ^ T1 = { 10, 10, 0 };
array<double> ^ T2 = { 200, 200, 0 };
array<double> ^ T3 = { 200, 10, 0 };
array<double> ^ T4 = { 15, 200, 0 };
array<double> ^ T5 = { 100, 100, 0 };
// T1 T2:
->ModelSpace->AddLine(T1, T2);
// T2 T3:
AutoCAD::AcadLine ^ =
->ModelSpace->AddLine(T2, T3);
// T5, 80,
// , 180 :
AutoCAD::AcadArc ^ =
->ModelSpace->AddArc(T5, 80, 0, Math::PI);
// ->ModelSpace->AddArc(T5, 80, 0, Math->PI);
// ( 0 )
->ModelSpace->AddText("", T4, 22);
210
9.8 ()
// 90 = /2:
AutoCAD::AcadText ^ =
->ModelSpace->AddText("", T1, 22);
// 90 :
->Rotation = Math::PI / 2;
// :
->SaveAs("C:\\.dwg", t, t);
ACAD1->Quit();
return 0;
}
, AcadApplication
AcadDocument.
AutoCAD Visible = True, AutoCAD .
(, , dwg-,
.) ,
. , ,
. ,
, AutoCAD .
AddLine 1, 2 2, 3.
, 90, /2. , SaveAs,
dwg- C.
AutoCAD,
. 9.9.
, sln-
ACAD.
211
73. MATLAB
Visual C++ 2010
MATLAB C++-.
MATLAB
.
MATLAB 6.5.
MATLAB,
MATLAB . y = sin(x) e x.
Visual Studio 2010 New
Project CLR Visual C++ Windows Forms
Application Visual C++. Toolbox
Button, MATLAB .
9.9.
9.9. MATLAB
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// Matlab
// ~ ~ ~ ~ ~ ~ ~ ~
//
// ProjectReference.
// MATLAB
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
button1->Text = " MATLAB";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
// MATLAB:
Type ^ =
Type::GetTypeFromProgID("Matlab.Application");
// MATLAB:
Object ^ = Activator::CreateInstance();
// MATLAB:
array<Object^> ^ =
// { "surf(peaks)" };
{ "x = 0:0.1:6.28; y = sin(x).*exp(-x); plot(x,y)" };
212
9.9 ()
// { "s = sin(0.5); c = cos(0.5); y = s*s+c*c; y" };
// MATLAB, :
Object ^ =
->InvokeMember("Execute", System::Reflection::
BindingFlags::InvokeMethod, nullptr, , );
MessageBox::Show(->ToString());
}
};
}
,
MATLAB.
. MATLAB,
. x = 0:0.1:6.28; x (
) 2 (6,28) 0,1. y = sin(x).*exp(-x); . plot
y x. Execute MATLAB
. MATLAB (. 9.10).
. 9.10. , MATLAB
, , MATLAB.
, Matlab.
sln Matlab.
74. MATLAB
213
74.
MATLAB
MATLAB
, ( . Think vectorized). , MATLAB
, MATLAB,
(matrix laboratory). ,
, , ,
MATLAB.
.
X1 + X2 + X3 = 6
X1 + X2 = 3
X2 + X3 = 5
.
Visual Studio 2010 New
Project CLR Visual C++ Windows Forms
Application Visual C++. Toolbox
Button. 9.10.
9.10. MATLAB
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// ,
// MATLAB, .
// , MessageBox
// ~ ~ ~ ~ ~ ~ ~ ~
//
// ProjectReference.
// MATLAB
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
button1->Text = " ";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
// AX = L
// : X = A(-1)L.
// (-1) - "" .
214
9.10 ()
//
// X1 + X2 + X3 = 6
// X1 + X2
= 3
//
X2 + X3 = 5
// MATLAB
:
// A = [1 1 1; 1 1 0; 0 1 1]; L = [6; 3; 5];
// % A L
// X = inv(A)*L % L" };
// % - MATLAB
// MATLAB:
Type ^ = Type::GetTypeFromProgID("Matlab.Application");
// MATLAB:
Object ^ = Activator::CreateInstance();
// MATLAB:
array<Object^> ^ =
{ "A = [1 1 1; 1 1 0; 0 1 1]; L = [6; 3; 5]; " +
"X = inv(A)*L % inv" };
// MATLAB, :
Object ^ = ->InvokeMember("Execute",
Reflection::BindingFlags::InvokeMethod,
nullptr, , );
// :
// MessageBox::Show(->ToString());
// ,
// double .
// GetFullMatrix
// MATLAB,
Reflection::ParameterModifier p =
Reflection::ParameterModifier(4);
p[0] = false; p[1] = false; p[2] = true; p[3] = true;
array<Reflection::ParameterModifier> ^ mods = { p };
array<double,2> ^ X = gcnew array<double,2>(3, 1);
array<Object^> ^ =
{ "X", "base", X, gcnew array<double>(0) };
// "X" - , .
// "base" MATLAB,
// "X".
= ->InvokeMember("GetFullMatrix",
Reflection::BindingFlags::InvokeMethod, nullptr, ,
, mods, nullptr, nullptr);
// X:
X = (array<double,2>^)[2];
String ^ = String::Format(
"X1 = {0}; X2 = {1}; X3 = {2};",
X[0, 0], X[1, 0], X[2, 0]);
MessageBox::Show();
}
};
}
75. PDF-
215
,
. MATLAB,
Execute, , , MessageBox.
Double, . ,
, Split, ,
.
( 9.10).
GetFullMatrix. .
. X, , MATLAB,
base (workspace) MATLAB,
X. , MATLAB
: base global.
X,
MATLAB, , ,
. . 9.11 . 9.11.
.
MATLAB
The MathWorks, MATLAB, www.
mathworks.com.
MATLAB
, Matlab.sln Matlab.
75. PDF-
, (, -
), , . , ,
, ,
.
- -,
, , , , ,
.
PDF-. PDF ,
216
. PDF
. PDF- ,
.
, ,
,
. PDF- Adobe Reader, -, Internet Explorer
Mozilla Firefox ( PDF- ).
PDF-
(on the fly) -. , Microsoft
- C++ (
Visual Basic Visual C# Visual Studio
). PDF- Windows-.
,
. ,
.
, , . Visual Studio 2010 New Project
CLR Visual C++ Console Application CLR.
_PDF_1. Microsoft
PDF, itextsharp.dll, iText Software
www.itextsharp.com.
( ),
( www.piter.com).
.
ProjectProperties Add Reference,
Browse () . 9.11.
9.11. PDF-,
// _PDF_1.cpp: .
// " " PDF-
#include "stdafx.h"
// itextsharp.dll:
// ProjectPropertiesAdd References Browse ()
// itextsharp.dll.
using namespace System;
// :
using namespace iTextSharp::text;
using namespace iTextSharp::text::pdf;
int main(array<System::String ^> ^args)
{
// PDF-:
Document ^ = gcnew Document();
75. PDF-
217
, PDF- Document
itextsharp.dll. .
pdf (Close). (Paragraph) . PDF-
Adobe Acrobat, , ,
, PDF- -, Internet
Explorer. , .
, , PDF- .
Windows 1251. , . Visual Studio 2010 New Project CLR
Visual C++ Console Application CLR. _PDF_2. , ,
itextsharp.dll.
9.12.
9.12. PDF-
// _PDF.cpp: .
// " " PDF-
#include "stdafx.h"
// itextsharp.dll:
// ProjectPropertiesAdd References Browse ()
// itextsharp.dll.
using namespace System;
// :
using namespace iTextSharp::text;
using namespace iTextSharp::text::pdf;
int main(array<System::String ^> ^args)
{
// PDF-:
Document ^ = gcnew Document();
PdfWriter::GetInstance(, gcnew System::IO::FileStream(
".pdf", System::IO::FileMode::Create));
->Open();
// , Windows:
BaseFont ^ = BaseFont::CreateFont(
//"C:\\WINDOWS\\Fonts\\comic.ttf", "CP1251", BaseFont::EMBEDDED);
218
9.12 ()
//"C:\\WINDOWS\\Fonts\\times.ttf", "CP1251", BaseFont::EMBEDDED);
"C:\\WINDOWS\\Fonts\\CONSOLA.TTF", "CP1251", BaseFont::EMBEDDED);
// 10 .
// Font::ITALIC () Font::BOLD ():
Font ^ = gcnew Font(, 10, Font::NORMAL);
->Add(gcnew Paragraph(
" !\n C++ ?", ));
->Close();
// PDF- -:
// System.Diagnostics.Process.Start("IExplore.exe", System.IO.
//
Directory.GetCurrentDirectory() + "\\.pdf");
// PDF- Adobe Acrobat,
// :
System::Diagnostics::Process::Start(".pdf");
return 0;
}
PDF-,
,
C:\Windows\Fonts. ,
, , . 14 , :
Times (, , );
Courier (, , );
Helvetica (, , );
Symbol;
Zapf Dingbats.
. ,
, , ,
, ,
, .
- PDF Adobe Reader (. 9.12).
. 9.12. PDF-
76. PDF-
219
, _PDF_1 _PDF_2.
76. PDF-
PDF- - . itextsharp.dll iText Software (. )
. . A4.
. . 9.12. ,
.
,
, ,
- , - . , .
, :
PDF-. Visual Studio 2010
New Project CLR Visual C++ Console
Application CLR. _PDF__1. itextsharp.dll.
ProjectProperties Add Reference,
Browse () .
9.13.
9.13. PDF- ( 1)
// _PDF__1.cpp: .
// " " PDF-
// ""
#include "stdafx.h"
using namespace System;
// :
using namespace iTextSharp::text;
using namespace iTextSharp::text::pdf;
int main(array<System::String ^> ^args)
{
// :
array<String^> ^ __ = { "N /", "1", "2", "3" };
array<String^> ^ =
{ "", "", "", "" };
array<String^> ^ = { "", "", "", "" };
array<String^> ^ =
{ "", "2 760 000", "10 380 000", " 1 740 000" };
// PDF-:
Document ^ = gcnew Document();
220
9.13 ()
PdfWriter ^ = PdfWriter::GetInstance(, gcnew System::
IO::FileStream("1.pdf", System::IO::FileMode::Create));
// System::IO::FileMode::Create - ,
// ,
->Open();
// Windows:
BaseFont ^ = BaseFont::CreateFont(
//"C:\\WINDOWS\\Fonts\\comic.ttf", "CP1251", BaseFont::EMBEDDED);
"C:\\WINDOWS\\Fonts\\times.ttf", "CP1251", BaseFont::EMBEDDED);
//"C:\\WINDOWS\\Fonts\\CONSOLA.TTF", "CP1251", BaseFont::EMBEDDED);
// 10 .
// Font::ITALIC () Font::BOLD ():
Font ^ = gcnew Font(, 12, Font::NORMAL);
// :
->Color = BaseColor::BLUE;
// :
->Add(gcnew Paragraph(" :\n\n", ));
// :
PdfPTable ^ = gcnew PdfPTable(4);
// :
->HorizontalAlignment = Element::ALIGN_CENTER; // ALIGN_LEFT;
PdfPCell ^ = gcnew PdfPCell(gcnew Phrase("", ));
// :
array<float> ^ = { 10.0f, 30.0f, 30.0f, 30.0f };
->SetTotalWidth();
// :
->GrayFill = 0.92f;
// :
->FixedHeight = 20.0f;
// :
->BorderColor = BaseColor::BLUE;
// :
->HorizontalAlignment = Element::ALIGN_LEFT; // ALIGN_CENTER;
->VerticalAlignment = Element::ALIGN_MIDDLE;
// :
for (int i = 0; i <= 3; i++)
{
->Phrase = gcnew Phrase(__[i], );
->AddCell();
->Phrase = gcnew Phrase([i], );
->AddCell();
->Phrase = gcnew Phrase([i], );
->AddCell();
->Phrase = gcnew Phrase([i], );
->AddCell();
}
->Add();
->Add(gcnew Paragraph(" ", ));
76. PDF-
221
->Close(); ->Close();
// PDF- -:
System::Diagnostics::Process::Start("IExplore.exe", System::IO::
Directory::GetCurrentDirectory() + "\\1.pdf");
// PDF- Adobe Acrobat,
// :
// System::Diagnostics::Process::Start(".pdf");
return 0;
}
,
PDF- ,
. , ,
PdfPTable. .
, , .
, PdfPCell.
. PDF-
Internet Explorer.
. 9.13.
, .
PDF- .
, ,
.
, ,
Visual Studio 2010 New Project CLR Visual C++ Console Application CLR. _PDF__2.
itextsharp.dll.
ProjectProperties Add Reference, Browse ()
222
.
9.14.
9.14. PDF- ( 2)
// _PDF__2.cpp: .
// " " PDF-
// ""
#include "stdafx.h"
using namespace System;
// :
using namespace iTextSharp::text;
using namespace iTextSharp::text::pdf;
int main(array<System::String ^> ^args)
{
// :
array<String^> ^ = { "", "", "",
"" };
array<String^> ^ = { "", "", "", "" };
// PDF-:
Document ^ = gcnew Document();
PdfWriter ^ = PdfWriter::GetInstance(, gcnew System::
IO::FileStream(".pdf", System::IO::FileMode::Create));
// System::IO::FileMode::Create - ,
// ,
->Open();
// Windows:
BaseFont ^ = BaseFont::CreateFont(
//"C:\\WINDOWS\\Fonts\\comic.ttf", "CP1251", BaseFont::EMBEDDED);
"C:\\WINDOWS\\Fonts\\times.ttf", "CP1251", BaseFont::EMBEDDED);
//"C:\\WINDOWS\\Fonts\\CONSOLA.TTF", "CP1251", BaseFont::EMBEDDED);
// 10 .
// Font.ITALIC () Font.BOLD ():
Font ^ = gcnew Font(, 10, Font::NORMAL, BaseColor::BLUE);
// : ->Color = BaseColor::RED;
PdfPTable ^ = gcnew PdfPTable(2);
PdfPCell ^ = gcnew PdfPCell();
->HorizontalAlignment = Element::ALIGN_LEFT;//.ALIGN_CENTER;
// :
->Colspan = 2;
// :
->Border = 0;
// :
->FixedHeight = 16.0f;
->Phrase = gcnew Phrase("- ", );
->AddCell();
->BackgroundColor = BaseColor::LIGHT_GRAY;
// :
->Colspan = 1;
// :
76. PDF-
223
->Border = 15;
for (int i = 0; i <= 3; i++)
{
->Phrase = gcnew Phrase([i], );
->AddCell();
->Phrase = gcnew Phrase([i], );
->AddCell();
}
->Colspan = 2; //
->Border = 0; //
->Phrase = gcnew Phrase(" ", );
->BackgroundColor = BaseColor::WHITE;
->AddCell();
// :
->TotalWidth = ->PageSize->Width - 400;
// -
// :
->WriteSelectedRows(0, -1, 40, ->PageSize->Height - 30,
->DirectContent);
->Close(); ->Close();
// PDF- -:
System::Diagnostics::Process::Start("IExplore.exe", System::IO::
Directory::GetCurrentDirectory() + "\\.pdf");
return 0;
}
WriteSelectedRows,
. ,
HTML-. HTML-
, - ,
.
. 9.14.
224
, _PDF__1 _PDF__2.
77.
PDF-
PDF-
, PDF-.
Visual Studio 2010 New Project CLR
Visual C++ Console Application CLR. _PDF__1. itextsharp.dll. ProjectProperties Add
Reference, Browse () .
9.15.
9.15. PDF-
// _PDF__1.cpp: .
// PDF- ,
// . ,
// . .
// .
//
#include "stdafx.h"
using namespace System;
// :
using namespace iTextSharp::text;
using namespace iTextSharp::text::pdf;
int main(array<System::String ^> ^args)
{
// PDF-:
Document ^ = gcnew Document();
PdfWriter ^ = PdfWriter::GetInstance(, gcnew System::
IO::FileStream(".pdf", System::IO::FileMode::Create));
// System::IO::FileMode::Create - ,
// ,
->Open();
// Windows:
BaseFont ^ = BaseFont::CreateFont(
"C:\\WINDOWS\\Fonts\\comic.ttf", "CP1251", BaseFont::EMBEDDED);
// 10 ::
// Font::ITALIC () Font::BOLD ():
Font ^ = gcnew Font(, 10, Font::NORMAL, BaseColor::BLUE);
// : ::Color = BaseColor::RED;
PdfPTable ^ = gcnew PdfPTable(2);
PdfPCell ^ = gcnew PdfPCell();
->HorizontalAlignment = Element::ALIGN_CENTER;
77. PDF-
225
// :
->Colspan = 2;
// :
->Border = 0;
// :
->FixedHeight = 16.0F;
->Phrase = gcnew Phrase(
" ?", );
->AddCell();
// :
->Colspan = 1;
// :
->Border = 15;
// :
->FixedHeight = 83.0F;
// :
->Image = Image::GetInstance("C:\\g.jpg");
->AddCell();
->Image = Image::GetInstance("C:\\m.jpg");
->AddCell();
->Colspan = 2; //
->Border = 0; //
->Phrase = gcnew Phrase(
", , ?", );
->BackgroundColor = BaseColor::WHITE;
->AddCell();
// :
->TotalWidth = ->PageSize->Width - 380;
// -
// :
->WriteSelectedRows(0, -1, 40,
->PageSize->Height - 30, ->DirectContent);
->Close(); ->Close();
// PDF- -:
System::Diagnostics::Process::Start("IExplore.exe", System::IO::
Directory::GetCurrentDirectory() + "\\.pdf");
return 0;
}
,
.
. 9.15.
, PDF-, . ,
. , , ,
Graphics, PDF. CLR,
226
, Graphics,
(
). , , , PDF-.
. 9.15.
77. PDF-
227
// :
using namespace iTextSharp::text;
using namespace iTextSharp::text::pdf;
int main(array<System::String ^> ^args)
{
// 215 x 35
// 24
auto = gcnew System::Drawing::
Bitmap(415, 35, System::Drawing::
Imaging::PixelFormat::Format24bppRgb);
// Graphics :
auto = System::Drawing::Graphics::FromImage();
auto 1 = System::Drawing::PointF(20.0f, 20.0f);
auto 2 = System::Drawing::PointF(360.0f, 20.0f);
auto = gcnew
System::Drawing::Drawing2D::LinearGradientBrush(1, 2,
System::Drawing::Color::Yellow, System::Drawing::Color::Red);
auto = gcnew System::Drawing::Font("Times gcnew Roman", 14.0F);
->Clear(System::Drawing::Color::White);
// 356 :
->RotateTransform(356.0F);
// 20.0f, 20.0f - :
->DrawString(" PDF-",
, , 20.0f, 20.0f);
// :
delete ; // C#: .Dispose();
// PDF-:
Document ^ = gcnew Document();
PdfWriter ^ = PdfWriter::GetInstance(, gcnew System::
IO::FileStream(".pdf", System::IO::FileMode::Create));
->Open();
auto = iTextSharp::text::Image::
GetInstance(, BaseColor::WHITE);
->Add();
->Close();
delete ; // C#: .Dispose();
System::Diagnostics::Process::Start(".pdf");
return 0;
}
, Graphics Image .
,
.
(. 9.16). GetInstance PDF-.
PDF- (. . 9.16).
228
. 9.16. , Graphics
, _PDF__1 _PDF__2.
10
ADO.NET
78. SQL Server
, SQL Server
Visual Studio 2010. , ,
: , .
Visual Studio 2010 New Project CLR
Visual C++ Windows Forms Application Visual C++,
_SQL_Server. SQL Server.
Project Add Existing Item ( )
. sdf,
_SQL_Server.sdf. Visual Studio 2010
C++ sdf.
, _SQL_
Server.sdf. , ,
.
Server Explorer ( ).
_SQL_Server.sdf Tables ().
Tables, Create Table ( ). New Table. ( Name) .
, . 10.1.
230
10 ADO.NET
. 10.1.
. 10.2.
231
,
. File Save All . ,
_SQL_Server.sdf. Microsoft
Visual Studio 2010 .
_SQL_Server.
79.
SQL Server
, SQL Server, _SQL_Server.
sdf, , ,
, , .
,
, C: Visual Studio 2010,
New Project CLR Visual C++
Console Application CLR. _SQL_Server_.
SQL Server System.Data.SqlServerCe.dll.
Project Properties Add Reference .NET
System.Data.SqlServerCe. .
10.1. SQL Server
// _SQL_Server_.cpp: .
// SQL Server ( *.sdf)
// Command DataReader
#include "stdafx.h"
using namespace System;
// System.Data.SqlServerCe.dll,
// : ProjectPropertiesAdd Reference
// .NET System.Data.SqlServerCe,
// :
using namespace System::Data::SqlServerCe;
int main(array<System::String ^> ^args)
{
// Connection:
SqlCeConnection ^ = gcnew SqlCeConnection();
// :
->ConnectionString = "Data Source=\"C:\\_SQL_Server.sdf\"";
->Open();
// Command: SQL-
SqlCeCommand ^ = gcnew SqlCeCommand();
232
10 ADO.NET
10.1 ()
->Connection = ;
// Command SQL-:
->CommandText = "Select * From [ ]";
// :
// "":
// .CommandText = "Select * From [ ] order by ";
// " ":
// .CommandText =
//
"Select * From [ ] ORDER BY [ ]";
// SQL- :
SqlCeDataReader ^ = ->
ExecuteReader(System::Data::CommandBehavior::CloseConnection);
// :
Console::Title = " :";
Console::BackgroundColor = ConsoleColor::Cyan; // -
Console::ForegroundColor = ConsoleColor::Black; // -
Console::Clear();
// () :
Console::WriteLine("{0,-11} {1,-11} {2,-15}\n", ->GetName(0),
->GetName(1), ->GetName(2));
while (->Read() == true)
// , .
// .FieldCount - .
// : 0, 1 2.
// :
Console::WriteLine("{0,-11} {1,-11} {2,-15}", ->GetValue(0),
->GetValue(1), ->GetValue(2));
->Close(); ->Close();
// - :
Console::ReadKey();
return 0;
}
, Connection .
sdf- (\"). ,
, .
Command SQL:
Select * From [ ]
[ ]. SQL - . ,
SQL-: (ORDER BY ) (ORDER BY [
]).
, DataReader, SQL-.
. DataReader
MS Access
233
, sln- _SQL_Server_.
MS Access
() vic.mdb Access MS Office.
, - , ( ) 100 .
() .
.
,
. () : /,
. Microsoft
Access, (
Ctrl+N), vic.
mdb. vic: . (
): /, ;
, ; , .
, :
. ,
. ,
, .
. , .
. (. 10.4).
234
10 ADO.NET
. 10.4. MS Access
Access vic.mdb
Visual Studio 2010.
80.
MS Access Visual Studio
Visual Studio 2010, . Visual Studio.
ViewServer Explorer (
Ctrl+Alt+S). ,
Data Connections, Add Connection
(Data source) Microsoft Access Database File (OLE DB), Change.
Browse , C:\vic.mdb.
Test Connection.
, . 10.5.
, OK. Server
Explorer , , , .
Retrieve Data.
,
. 10.6. ,
(Update), (Insert), ,
. 10.5.
(Delete). ,
81. MS Access
235
PaneSQL, SQL- ,
Select.
81.
MS Access
Command DataReader
,
( ) .
ADO.NET. . Connection .
Command SQL-
. DataSet DataReaders .
: Select (
), Insert ( ), Update (
), Delete ( ).
Visual Studio 2010 New Project CLR
Visual C++ Console Application CLR. DataReader. .
MessageBox::Show,
MessageBox::Show , ,
, .
Courier New Consolas, MessageBox
.
, DOS.
,
. , . ()
236
10 ADO.NET
, , .
10.2.
10.2. MS Access
// DataReader1.cpp: .
// MS Access
// Command DataReader
#include "stdafx.h"
using namespace System;
// :
using namespace System::Data::OleDb;
int main(array<System::String ^> ^args)
{
// :
Console::ForegroundColor = ConsoleColor::White;
// Connection
auto = gcnew OleDbConnection();
// :
->ConnectionString = "Data Source=\"C:\\vic.mdb\";User " +
"ID=Admin;Provider=\"Microsoft.Jet.OLEDB.4.0\";";
->Open();
// Command:
auto = gcnew OleDbCommand();
->Connection = ;
// SQL-:
->CommandText = "Select * From [ ]";
// "":
// ->CommandText = "Select * From [ ] order by ";
// " /":
// ->CommandText =
//
"Select * From [ ] ORDER BY ' /'";
// SQL-:
OleDbDataReader ^ = ->
ExecuteReader(System::Data::CommandBehavior::CloseConnection);
Console::WriteLine(" :\n");
while (->Read() == true)
// , .
// ->FieldCount - .
// : 0, 1 2.
// :
Console::WriteLine("{0,-3} {1,-15} {2,-15}", ->GetValue(0),
->GetValue(1), ->GetValue(2));
->Close(); ->Close();
// - :
Console::ReadKey();
return 0;
}
82. MS Access
237
, Connection .
mdb- . ,
, .
Command SQL:
Select * From [ ]
[ ]. SQL - . ,
SQL-: (ORDER BY ) / (ORDER BY ' /').
, DataReader, SQL-.
. DataReader
() . DataReader Read, true,
, false, () .
DataReader .
. 10.7.
. 10.7.
,
. ,
.
,
DataReader.
82. MS Access
, Access,
new_BD.mdb. , .
Visual C++ 2010, MS Access. ,
ADO.NET .
238
10 ADO.NET
MessageBox , dll-. , ,
ProjectPropertiesAdd Reference .NET
System.Windows.Forms.dll, :
Using namespace System::Windows::Forms;
using ,
MessageBox.
83.
239
: ADOX::catalog, Create ,
. ,
. Create try...catch, .
(. 10.8).
, ,
(. 10.9), new_BD.mdb
.
. 10.8.
. 10.9.
.
, .sln .
83.
MS Access.
ADO.NET. , ,
, .
, . ,
.
new_BD.mdb C:,
MS Access , . ,
. Visual Studio 2010 New Project
CLR Visual C++ Console Application CLR. , 10.4.
10.4. MS Access
//
//
//
//
.cpp: .
MS Access.
.
, .
240
10 ADO.NET
10.4 ()
// ,
#include "stdafx.h"
using namespace System;
// MessageBox :
// ProjectAdd Reference .NET
// System.Windows.Forms.dll, :
using namespace System::Windows::Forms;
//
// :
using namespace System::Data::OleDb;
int main(array<System::String ^> ^args)
{ // :
// Connection
// :
auto = gcnew OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\new_BD.mdb");
// :
->Open();
// Command
// SQL-:
auto = gcnew OleDbCommand("CREATE TABLE [" +
" ] ([ /] counter, [] ch" +
"ar(20), [ ] char(20))", );
try // SQL:
{
->ExecuteNonQuery();
MessageBox::Show(
" ' ' ");
}
catch (Exception ^ )
{ MessageBox::Show(->Message); }
->Close();
return 0;
}
84. MS Access
241
,
catch ( ),
, (. 10.10).
, . 10.10.
Connection
Open.
SQL- Command
ExecuteNonQuery. , , ,
, , ( ,
) .
, .sln .
84.
MS Access
, . ,
. Command SQL- (INSERT) .
, SQL- [
], , . ,
,
(case-sensitive search).
,
(case-insensitive search).
Connection Command
Connection:
->Connection = ;
, .
, 10.5.
10.5. MS Access
// .cpp: .
// MS Access.
// Command SQL-
// (Insert)
#include "stdafx.h"
using namespace System;
242
10 ADO.NET
10.5 ()
// MessageBox :
// ProjectAdd Reference .NET
// System.Windows.Forms.dll, :
using namespace System::Windows::Forms;
//
// :
using namespace System::Data::OleDb;
// :
int main(array<System::String ^> ^args)
{
// Connection
// :
auto = gcnew OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\new_BD.mdb");
// :
->Open();
// Command SQL-:
auto = gcnew OleDbCommand(
"INSERT INTO [ ] (" +
", [ ]) VALUES (-X, 521-61-41)");
// :
->Connection = ;
// SQL:
->ExecuteNonQuery();
MessageBox::Show(" ' ' ");
->Close();
return 0;
}
85.
243
85.
c
Command, DataReader
DataGridView
,
DataGridView ( , ) Command DataReader .
Visual Studio 2010 New Project CLR Visual C++ Windows Forms Application
Visual C++. Toolbox
DataGridView . Form1.h , 10.6.
10.6.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
//
// Command, DataReader DataGridView ( )
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
{
// Connection :
auto = gcnew OleDb::OleDbConnection(
"Data Source=\"C:\\vic.mdb\";User " +
"ID=Admin;Provider=\"Microsoft.Jet.OLEDB.4.0\";");
->Open();
// Command, SQL-
auto = gcnew OleDb::
OleDbCommand("Select * From [ ]", );
// SQL-
auto = -> ExecuteReader();
// (CommandBehavior.CloseConnection)
auto = gcnew DataTable();
// ""
->Columns->Add(->GetName(0));
->Columns->Add(->GetName(1));
->Columns->Add(->GetName(2));
while (->Read() == true)
244
10 ADO.NET
10.6 ()
// ()
->Rows->Add(->GetValue(0),
->GetValue(1), ->GetValue(2));
// : 0, 1 2
->Close(); ->Close();
dataGridView1->DataSource = ;
}
};
}
, . SQL- DataTable,
(DataSource) dataGridView1.
, , Add.
, , While .
. 10.11.
. 10.11. DataGridView
,
. () , (
).
DataReader
.
.
, ReaderGridView.sln ReaderGridView.
86. DataGridView
245
86.
DataGridView
Command, Adapter DataSet
Adapter DataSet.
, DataSet,
DataGridView ( , ),
DataGridView DataSet.
DataGridView, . , , Visual Studio 2010
New Project CLR Visual C++ Windows Forms
Application Visual C++. Toolbox
DataGridView , . 10.12.
. 10.12.
, 10.7.
10.7. DataGridView
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// DataGridView
// Command, Adapter DataSet
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^
{
this->Text = " :";
auto = gcnew OleDb::OleDbConnection(
"Data Source=\"C:\\vic.mdb\";User " +
e)
246
10 ADO.NET
10.7 ()
"ID=Admin;Provider=\"Microsoft.Jet.OLEDB.4.0\";");
->Open();
auto = gcnew OleDb::OleDbCommand(
"Select * From [ ]", );
// ,
// "":
// auto =
//
gcnew OleDb::OleDbCommand("SELECT * FRO" +
//
"M [ ] WHERE ( LIKE %)", );
// Adapter SQL-
auto = gcnew OleDb::OleDbDataAdapter();
// DataSet
auto = gcnew DataSet();
// DataSet SQL-
->Fill(, " ");
// DataSet XML :
auto XML = ->GetXml();
// :
dataGridView1->DataSource = ;
// :
dataGridView1->DataMember = " ";
->Close();
}
};
}
, Connection,
. , Command,
SQL- .
SQL-. ,
SELECT LIKE,
, . LIKE
(pattern matching) () (*) (?).
. ,
% * LIKE-.
Adapter SQL-
Fill DataSet ,
SQL-.
dataGridView1 DataSet.
SQL- (. 10.13).
DataReader , .
() , ( ).
87. MS Access
247
. 10.13. SQL-
,
DataGridView, ,
.
, GridView.sln GridView.
87.
MS Access
(Select, Insert, Update
Delete) (Update, ) .
, () .
,
DataGridView,
. , , ,
, .
Visual Studio 2010 New Project
CLR Visual C++ Windows Forms Application
Visual C++. Toolbox DataGridView
. 10.8.
10.8. MS Access
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
248
10 ADO.NET
10.8 ()
#pragma endregion
// (Update) MS Access
// ~ ~ ~ ~ ~ ~ ~ ~
// ,
// :
DataSet ^ ;
OleDb::OleDbDataAdapter ^ ;
OleDb::OleDbConnection ^ ;
OleDb::OleDbCommand ^ ;
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
= gcnew DataSet();
= gcnew OleDb::
OleDbConnection( // :
"Data Source=\"C:\\vic.mdb\";User " +
"ID=Admin;Provider=\"Microsoft.Jet.OLEDB.4.0\";");
= gcnew OleDb::OleDbCommand();
button1->Text = " "; button1->TabIndex = 0;
button2->Text = " ";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
// :
if (->State ==
ConnectionState::Closed) ->Open();
= gcnew OleDb::OleDbDataAdapter(
"Select * From [ ]", );
// DataSet SQL-
->Fill(, " ");
// DataSet XML :
String ^ XML = ->GetXml();
// :
dataGridView1->DataSource = ;
// :
dataGridView1->DataMember = " ";
->Close();
}
private: System::Void button2_Click(System::Object^ sender,
System::EventArgs^ e)
{ //
->CommandText = "UPDATE [ ] SET [" +
" ] = ?, = ? WHERE ([ /] = ?)";
// ,
->Parameters->Add(" ",
OleDb::OleDbType::VarWChar, 50, " ");
->Parameters->Add(
"", OleDb::OleDbType::VarWChar, 50, "");
87. MS Access
249
->Parameters->Add
(gcnew OleDb::OleDbParameter("Original___",
OleDb::OleDbType::Integer,
0, System::Data::ParameterDirection::
Input, false, (Byte)0, (Byte)0, " /",
System::Data::DataRowVersion::Original, nullptr));
->UpdateCommand = ;
->Connection = ;
try
{ // Update
int kol = ->Update(, );
MessageBox::Show(" " + kol + " ");
}
catch (Exception ^ )
{ MessageBox::Show(->Message, ""); }
}
};
}
, : , .
DataSet, DataAdapter, Connection Command
, Form1.
SQL-
(Select * From [ ]) Adapter DataSet. A DataSet (DataSource) dataGridView1. . 10.14.
. 10.14.
. . CommandText
SQL-. . SQL- .
,
250
10 ADO.NET
. Parameters->Add. (, ), ,
. , (
/) ,
, ,
.
try...catch Update, (kol) .
Exception: Exception
.
, Update.
sln Update.
88.
SQL-
Command
( ),
SQL-, Command. Command SQL-
. .
, , , .
Visual Studio 2010 New Project CLR Visual C++
Console Application CLR.
MessageBox::Show, Forms.
dll. ProjectPropertiesAdd Reference
.NET System.Windows.Forms.dll. ,
Referenses References
.
10.9.
10.9.
// .cpp: .
// SQL-
// Command
#include "stdafx.h"
using namespace System;
// MessageBox :
// ProjectAdd Reference .NET
// System.Windows.Forms.dll, :
using namespace System::Windows::Forms;
int main(array<System::String ^> ^args)
88.
251
{
// Connection
auto = gcnew Data::OleDb::
OleDbConnection( // :
"Data Source=\"C:\\vic.mdb\";User " +
"ID=Admin;Provider=\"Microsoft.Jet.OLEDB.4.0\";");
->Open();
// Command, SQL-
auto = gcnew Data::OleDb::OleDbCommand(
"Delete * From [ ] Where " +
" Like Vi%", );
// SQL
int i = ->ExecuteNonQuery();
// i -
if (i > 0) MessageBox::Show(
", 'Vi*', ");
if (i == 0) MessageBox::Show(
", 'Vi*', ");
->Close();
return 0;
}
Command SQL-
(Delete) , Vi*, , ,
Vi*, vi*, VI* . , (case-insensitive search).
, SQL ExecuteNonQuery. i .
i = 0, , , .
, .sln .
LINQ
11
89.
Linq::Enumerable
Linq::Enumerable. :
, ,
(). ,
.
89. Linq::Enumerable
253
254
11 LINQ
11.1 ()
", ,
\n" +
" \n" +
" :
\n");
// , - :
auto = Enumerable::Where<String^>(, gcnew
Func<String ^,bool>());
// :
= Enumerable::OrderBy(, gcnew
Func<String ^,String ^>(2));
// :
= Enumerable::Select(, gcnew
Func<String ^,String ^>(2));
// :
= Enumerable::Distinct();
// :
for each (String ^ x in )
Console::WriteLine("{0} ", x);
Console::ReadKey();
return 0;
}
,
, LINQ- Where, , (Length) .
.
. LINQ- OrderBy,
Select.
Distinct. for each
.
. 11.1 .
. 11.1. LINQ
, Linq.
sln Linq.
90. () LINQ
255
90. ()
LINQ
(, List)
, . ,
,
.
,
. ,
. MSDN,
, ,
.
. :
, :
, , .
. , , 33 ( ). ,
.
Visual Studio 2010,
, Visual C++ CLR Console Application CLR,
Name Linq1. ,
System::Linq, System.Core.dll.
ProjectPropertiesAdd Reference .NET
System.Core. 11.2
.
11.2. ( 1)
// Linq1.cpp: .
//
//
#include "stdafx.h"
// .NET System.Core
using namespace System;
// :
using namespace System::Linq;
using namespace System::Collections::Generic;
// ( ):
value struct
// value class
{
public: String ^ ;
public: int ;
256
11 LINQ
11.2 ()
public: bool ;
};
bool ( S)
{
// , :
bool A = false;
if (S. == false) A = true;
return A;
// :
// return !S.;
//
}
bool 2( S)
{
// 33 , "":
bool A = false;
if (S. > 33) A = true;
return A;
// :
// return S. > 33;
//
}
int main(array<System::String ^> ^args)
{
Console::Title = " Linq::Enumerable";
Console::BackgroundColor = ConsoleColor::Cyan; // -
Console::ForegroundColor = ConsoleColor::Black; // -
Console::Clear();
// :
List<> ^ = gcnew List<>();
// ( ):
1 = {" ", 45, false};
->Add(1);
2 = {" ", 22, true};
->Add(2);
3 = {" ", 32, false};
->Add(3);
4 = {" ", 43, true};
->Add(4);
// :
auto = Enumerable::Where<>(, gcnew
Func< ,bool>());
// :
Console::WriteLine(" :\n");
for each ( x in )
Console::WriteLine("{0} ", x.);
// "" ,
// 33 :
90. () LINQ
257
, .
. .
, : ,
. ,
Where Enumerable. .
.
. 11.2.
, for each (. 11.2).
,
2.
LINQ
:
,
, .
,
, .
, Visual Studio 2010,
, Visual C++ CLR Console Application CLR, Name Linq2. ,
System::Linq, System.Core.dll.
ProjectPropertiesAdd Reference .NET
System.Core.
11.3 .
11.3. ( 2)
// Linq.cpp: .
// .
// ,
//
#include "stdafx.h"
// .NET System.Core
using namespace System;
258
11 LINQ
11.3 ()
// :
using namespace System::Linq;
using namespace System::Collections::Generic;
// :
value class
// : value struct
{
public: String ^ ;
public: array<int> ^ ;
};
bool ( S)
{
bool A = false;
// - , ,
// : A = true:
for each(int i in S.)
if (i <= 2) { A = true; break; }
return A;
}
String ^ 2( S)
{
// :
return S.;
}
int main(array<System::String ^> ^args)
{
// :
Console::ForegroundColor = ConsoleColor::White;
// :
array<> ^ =
{ "",
gcnew array<int>{5, 4, 4, 5},
"", gcnew array<int>{3, 3, 2, 4},
"", gcnew array<int>{3, 4, 4, 5},
"", gcnew array<int>{2, 4, 3, 2},
"",
gcnew array<int>{2, 3, 4, 3},
};
// :
List<> ^ = Enumerable::ToList<>();
// -:
auto = Enumerable::Where<>(, gcnew
Func< ,bool>());
// :
= Enumerable::OrderBy(, gcnew
Func<, String ^>(2));
// :
for each ( ^ x in )
Console::WriteLine("{0} ", x->);
Console::ReadKey();
return 0;
}
91. GroupBy
259
,
( ) , : . , .
LINQ
, . 11.3.
( Where),
( OrderBy).
. 11.3.
, Linq1 Linq2.
91.
GroupBy
GroupBy.
List. : .
, , 31, .
, Visual Studio 2010, , Visual C++ CLR Console Application CLR, Name Linq. ,
System::Linq,
System.Core.dll. ProjectPropertiesAdd
Reference .NET System.Core. 11.4
.
11.4. GroupBy
// Linq_.cpp: .
//
// .
// , ,
// 31 , , .
//
#include "stdafx.h"
// .NET System.Core
using namespace System;
// :
using namespace System::Linq;
using namespace System::Collections::Generic;
value struct
260
11 LINQ
11.4 ()
{
public: String ^ ;
public: int ;
};
bool ( t)
{
bool A = false;
if (t. == 31) A = true;
return A;
}
2( t)
{
return t;
}
int main(array<System::String ^> ^args)
{
// :
Console::ForegroundColor = ConsoleColor::White;
// - 12:
auto = gcnew List<>(12);
auto 1 = ();
// :
1. = "";
1. = 31; ->Add(1);
1. = ""; 1. = 28; ->Add(1);
1. = "";
1. = 31; ->Add(1);
1. = "";
1. = 30; ->Add(1);
1. = "";
1. = 31; ->Add(1);
1. = "";
1. = 30; ->Add(1);
1. = "";
1. = 31; ->Add(1);
1. = "";
1. = 31; ->Add(1);
1. = ""; 1. = 30; ->Add(1);
1. = ""; 1. = 31; ->Add(1);
1. = "";
1. = 30; ->Add(1);
1. = ""; 1. = 31; ->Add(1);
// , .
// : ,
// 31 , - :
auto = Enumerable::GroupBy<, bool, >(,
gcnew Func<, bool>(),
gcnew Func<, >(2));
// :
Console::WriteLine(" : \n");
// :
for each (IGrouping<bool,> ^ in )
{
if(->Key == true)
Console::WriteLine(", 31 : \n");
else Console::WriteLine("\n : \n");
91. GroupBy
261
// :
for each ( in )
Console::WriteLine("{0} - {1}", ., .);
}
// - :
Console::ReadKey();
return 0;
}
List.
, ,
.
GroupBy. . for each. ,
. . 11.4.
. 11.4.
, ,
Dictionary. .
, . .
, .
, , ,
90 . ,
LINQ-.
, Visual Studio 2010,
, Visual C++ CLR Console Application CLR, Name Linq. ,
System::Linq, System.Core.dll.
ProjectPropertiesAdd Reference .NET
262
11 LINQ
System.Core. 11.5
.
11.5. Dictionary GroupBy
// Linq.cpp: .
// Dictionary . // : . GroupBy
// : 90 .
//
#include "stdafx.h"
// .NET System.Core
using namespace System;
//
// :
using namespace System::Linq;
using namespace System::Collections::Generic;
bool (KeyValuePair<String^, float> t)
{
bool A = false;
if (t.Value > 90) A = true;
return A;
}
KeyValuePair<String^, float> 2(KeyValuePair<String^, float> t)
{
return t;
}
int main(array<System::String ^> ^args)
{
// :
Console::ForegroundColor = ConsoleColor::White;
// :
auto = gcnew Dictionary<String^, float>();
->Add("", 115.50F);
->Add("",
18.75F );
->Add("", 93.75F );
->Add("",
76.25F );
->Add("",
150.00F);
->Add("", 62.50F );
// , :
auto = Enumerable::GroupBy<
KeyValuePair<String^, float>,
bool, KeyValuePair<String^, float>>(,
gcnew Func<KeyValuePair<String^, float>, bool>(),
gcnew Func<KeyValuePair<String^, float>,
KeyValuePair<String^, float>>(2));
// :
Console::WriteLine(" : \n");
for each (IGrouping<bool,KeyValuePair<String^, float>> ^
in )
92. XML-
263
{
if(->Key == true)
Console::WriteLine(" 90 : \n");
else Console::WriteLine("\n 90 : \n");
for each (KeyValuePair<String^, float> in )
Console::WriteLine("{0} - {1}",.Key, .Value);
}
Console::ReadKey();
return 0;
}
. GroupBy.
-
KeyValuePair .
GroupBy
.
for each. , .
. 11.5.
, , , Linq Linq.
. 11.5.
GroupBy
92. XML-
System::Xml::Linq
, System::Xml , XML-, Visual Studio 2010
System::Xml::Linq, ,
XML, .
XML-, XDocument System::Xml::Linq.
: ,
. XML-
XML-, MS Excel , : , .
XML-.
, Visual Studio 2010, ,
Visual C++ CLR Console Application CLR ,
Name LinqXML-. ,
System::Xml::Linq, System.XML.
264
11 LINQ
.
11.6. XML-,
// LinqXML-.cpp: .
// XML-.
// XML-.
// XML-: , ,
// , , . XML-
// , ,
// , . XML-
// , .
// MS Excel,
#include "stdafx.h"
using namespace System;
// :
using namespace System::Xml::Linq;
int main(array<System::String ^> ^args)
{
Console::Title = " XML-";
// XML-:
XDocument ^ XML = gcnew XDocument(
// XML-:
gcnew XComment(
"_ - XML-:"),
gcnew XElement("_", // -
gcnew XComment(
" "),
gcnew XElement("", // - (Name)
gcnew XAttribute("", ""),
gcnew XElement("_", "236-23-67"), // -
//
gcnew XElement("_", "+7(495)625-31-43")),
gcnew XComment(" ' ':"),
gcnew XElement("",
gcnew XAttribute("", " "), // -
//
gcnew XElement("_", "001"),
gcnew XElement("_", "")), // -
// (Value)
gcnew XComment(
" =>"),
gcnew XElement("",
gcnew XAttribute("", " "),
// ""
gcnew XElement("_", "402-12-45"),
92. XML-
265
XML-
<_> </_>.
.
MS Excel . ,
,
(Name) _ _.
MS Excel ( ):
, _ _.
( , ,
, _), ,
(Name) (Value) 001.
XML XML- ( ),
XML-. MS Excel,
(. 11.7).
266
11 LINQ
, LinqXML-.sln LinqXML-.
93.
XML-
, , , XML-, ,
-, .
XML- . XML-
.
XML- (. 11.8).
. 11.8. XML-
93. XML-
267
268
11 LINQ
11.7 ()
auto =
System::Xml::Linq::XElement::Parse(XML);
// XML- :
// , XML, :
// System::IO::File::WriteAllText(
//
"C:\\.xml", XML);
// XML:
// =
//
System::Xml::Linq::XElement::Load(
//
"C:\\.xml");
//
// "" (Value)
// :
String ^ =
->Element("")->Value;
textBox1->Text =
" XML:\r\n\r\n" + XML + "\r\n\r\n";
textBox1->Text += " = " + ;
}
};
}
, XML-.
, Parse XElement Linq,
XML-. , / XML-.
Element (Value) , .
. 11.9.
. 11.9. XML-
, Xml1.sln Xml1.
,
XML- , <> </>;
93. XML-
269
( 11.8)
( ). : ?
, XML-
MS Excel, XML-
, XSLT ( XLS) (. 11.10).
270
11 LINQ
11.8 ()
// :
using namespace System::Xml::Linq;
using namespace System::Collections::Generic;
bool (XElement ^ t)
{
bool A = false;
if(t->Element("") != nullptr) A = true;
return A;
}
int main(array<System::String ^> ^args)
{
// :
Console::ForegroundColor = ConsoleColor::White;
Console::Title = " XML-";
// XML-:
String ^ XML =
"<?xml version=\"1.0\"?>"
+
"<>"
+
" <>"
+
"
<></>"
+
" </>"
+
" <>"
+
"
<>2010.05.15 06:30 UTC</>"
+
" </>"
+
" <>"
+
"
<> 64 F (18 C)</>" +
" </>"
+
" <>"
+
"
<>- 8 /</>"
+
" </>"
+
" <>"
+
"
<>12 </>"
+
" </>"
+
" <>"
+
"
<> 72%</>"
+
" </>"
+
" <>"
+
"
<>760 </>"
+
" </>"
+
"</>";
auto = XElement::Parse(XML);
//
auto = ->Elements();
// "":
auto = Linq::Enumerable::Where<XElement^>(,
gcnew Func<XElement^, bool>());
// :
for each (XElement ^ in )
Console::WriteLine(" = " + ->Value);
94. () XML-
271
// Where,
// :
// String ^ = String::Empty;
// for each (XElement ^ in )
// {
//
if (->Element("") != nullptr) =
//
->Element("")->Value;
// }
// Console::WriteLine(" = " + );
Console::ReadKey();
return 0;
}
, XML-
XML- Parse.
, Elements XElement.
Where . .
, XML-
Where.
. 11.11.
. 11.11. XML-
, , Xml1
Xml2.
94. () XML-
XML-,
, , , ,
.
, (
XML, . 11.9) . , , , ,
: , -
XML,
- .
, XML- MS Excel (. 11.12).
272
11 LINQ
, MS Excel XML-
. , ,
, .
Visual Studio 2010,
, Visual C++ CLR Console Application CLR. Name Xml.
System::Xml::Linq, System.XML.Linq.
dll. ProjectPropertiesAdd Reference
.NET System.XML.Linq.
, 11.9.
11.9. XML-
// Xml.cpp: .
// XML-,
// , .
// ,
// ( XML) ""
// System::Xml::Linq
#include "stdafx.h"
// System.XML.Linq.dll
using namespace System;
// :
using namespace System::Xml::Linq;
int main(array<System::String ^> ^args)
{
// :
Console::ForegroundColor = ConsoleColor::White;
Console::Title = " XML- Linq";
// XML-:
String ^ XML =
"<?xml version=\"1.0\"?>
"
"
<>
"
"
<>
"
"
<></>
"
"
<_>274 28 44</_>
"
"
</>
"
+
+
+
+
+
+
94. () XML-
273
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
<>
" +
<></>
" +
<_>8-085-456-2378</_>" +
</>
" +
<>
" +
<> </>
" +
<_>445-56-47</_>
" +
</>
" +
<>
" +
<></>
" +
<_>099 72 161 52</_> " +
</>
" +
<>
" +
<></>
" +
<_>236-77-76</_>
" +
</>
" +
<>
" +
<></>
" +
<_>254 67 97</_>
" +
</>
" +
</>";
auto = XElement::Parse(XML);
// , XML, :
// IO::File::WriteAllText(C:\\.xml, XML);
// = XElement::Load(C:\\.xml);
//
auto = ->Elements();
Console::WriteLine(", \"\":");
for each (XElement ^ x in )
if (x->Element("")->Value == "")
Console::WriteLine(x->Element("_")->Value);
// -
Console::ReadKey();
return 0;
}
,
( ) XML-.
XML-, , , XML-
XML- ( ). , , XML- . . for each
. . 11.13.
274
11 LINQ
, Xml.sln Xml.
95. XML-
XML-
XML-,
, .
,
. Internet Explorer . . 11.14,
MS Excel . . 11.15. XML-
. , XML-.
. 11.14. XML-
275
System.XML.Linq.dll.
Project Properties Add Reference .NET
System.XML.Linq. 11.10 .
11.10. XML- XML-
// LinqPiter.cpp: .
// XML- (),
// , . .
// () XML-
#include "stdafx.h"
// System.XML.Linq,
// Project | Properties | Add Reference .NET
// System.Xml.Linq
using namespace System;
// :
using namespace System::Xml;
using namespace System::Xml::Linq;
int main(array<System::String ^> ^args)
{
XmlWriterSettings ^ = gcnew XmlWriterSettings();
// :
->Indent = true;
// XML-:
XmlWriter ^ Xml =
XmlWriter::Create("C:\\.xml", );
// () :
Xml->WriteStartElement("__");
// :
Xml->WriteComment(" Piter.xml");
// XML- - :
XDocument ^ Xml = XDocument::Load("C:\\Piter.xml);
// :
XElement ^ =
Xml->Element("_");
// "":
auto = ->
Elements("__");
// "":
for each (XElement ^ in )
if (->Element("")->Value == " .")
// XML- . :
->WriteTo(Xml);
// XML-:
Xml->WriteEndElement();
Xml->Flush();
Xml->Close();
return 0;
}
276
11 LINQ
XML-,
- C:\Piter.xml. XML-
() ,
. for each
..
XML- (. 11.16
11.17).
. 11.16. XML-
, LinqPiter.
sln LinqPiter.
96.
DataSet
DataSet, , , . DataSet (cache) (
, , ).
96. DataSet
277
.
DataTable, . , DataSet () DataTable.
LINQ , DataSet,
.
, ,
,
. :
, .
Visual Studio 2010 Windows Forms Application, Name DataSet. Toolbox
DataGridView,
Button TextBox.
, ,
.
, Multiline true.
DataSet
System.Data.DataSetExtensions.dll.
ProjectPropertiesAdd Reference .NET
System.Data.DataSetExtensions. ,
11.11.
11.11. DataSet
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
//
// DataGridView,
// . ,
// XML,
// DataGridView -
// . ""
// XML-. ""
// - DataSet
// .
// ~ ~ ~ ~ ~ ~ ~ ~
// System.Data.DataSetExtensions .NET
DataTable ^ ;
//
DataSet ^ ; //
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
278
11 LINQ
11.11 ()
{
= gcnew DataTable();
= gcnew DataSet();
Form1::Text = " DataSet";
button1->Text = ""; button2->Text = "";
textBox1->Multiline = true; button2->TabIndex = 0;
if (System::IO::File::Exists("C:\\.xml") == false)
{
// XML- :
// ""
->Columns->Add("");
->Columns->Add("");
// DataSet
->Tables->Add();
dataGridView1->DataSource = ;
}
else // XML- C:
{
->ReadXml("C:\\.xml");
// DataSet XML :
// String ^ XML = ->GetXml();
= ->Tables[""];
dataGridView1->DataMember = "";
dataGridView1->DataSource = ;
}
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
// "" // .xml:
->TableName = "";
->WriteXml("C:\\.xml");
}
private: System::Void button2_Click(System::Object^ sender,
System::EventArgs^ e)
{
// "" - -:
textBox1->Clear(); // -
// () DataTable:
EnumerableRowCollection<DataRow^> ^ =
DataTableExtensions::AsEnumerable();
// :
Generic::Dictionary<String^, String^> =
gcnew Generic::Dictionary<String^, String^>();
// :
for each (DataRow ^ in )
{
// :
96. DataSet
279
String ^ = DataRowExtensions::
Field<String^>(, "");
String ^ = DataRowExtensions::
Field<String^>(, "");
// 1
:
if (Convert::ToInt32() >= 1000000)
.Add(, );
}
textBox1->Text = "-:\r\n";
// textBox1:
for each (String ^ in .Keys)
textBox1->Text +=
+ " - " + [] + "\r\n";
}
};
}
DataSet DataTable ,
Form1.
, .xml,
. , , , (): , (Add) ,
(DataSource)
dataGridView1. .xml ,
DataSet ,
.
.xml.
DataTable, DataSet.
,
. , for each.
. 11.18.
. 11.18.
-
, DataSet.sln
DataSet.
12
Windows Application
97.
, , . ,
.
: , . .
(,
pattern) ,
.
Visual Studio 2010 New Project CLR Visual C++ Windows Forms Application
Visual C++. Toolbox
TextBox, Label Button.
12.1 .
12.1.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// , , .
97.
281
//
//
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
label1->Text = " :";
button1->Text = "";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
textBox1->Text = textBox1->Text->Trim();
if (System::Text::RegularExpressions::Regex::Match(
textBox1->Text,
"^[---][--]*$")->Success != true)
MessageBox::Show (" ", "");
}
};
}
textBox1>Text Trim,
.
Regex::Match ( . match ):
Regex::Match(textBox1->Text, "^[---][--]*$")
Match . , ^
$. ^ $ .
, , .
. , , (
) , , , ,
, .
, , *
,
. . 12.1.
. 12.1.
282
12 , Windows Application
, ,
.
, 2010, 2.9, 5., .777,
( ).
,
, ( 12.2).
12.2.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// , , .
//
//
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
label1->Text = " :";
button1->Text = "";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
textBox1->Text = textBox1->Text->Trim();
if (System::Text::RegularExpressions::Regex::Match(
textBox1->Text,
"^(([0-9]+.[0-9]*)|([0-9]*.[0-9]+)|([0-9]+))$"
)->Success == false)
MessageBox::Show(" ", "");
}
};
}
,
"^(([0-9]+.[0-9]*)|([0-9]*.[0-9]+)|([0-9]+))$"
|, ,
.
0 9 . (+) ,
. *
, .
, , , 6.
( ). , -
98.
283
, , .777.
.
, ,
, .sln .sln .
98.
, Windows-,
. , ,
, . .
, . .
Visual Studio 2010 New Project
CLR Visual C++ Windows Forms Application
Visual C++.
Toolbox Timer (). Tick,
, .
timer1->Interval 100 ,
.
.
, .
, Timer
Form1.h[Design].
, Click.
Opacity, . 12.3.
12.3.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// .
// :
// , .
// . .
// ,
284
12 , Windows Application
12.3 ()
// . .
double s; // -
private: System::
Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
s = 0.1;
Form1::Text = " ";
// Timer1->Interval() = 400;
}
private: System::Void timer1_Tick(System::Object^ sender,
System::EventArgs^ e)
{
if (this->Opacity <= 0 || this->Opacity >= 1) s = -s;
this->Opacity += s;
}
private: System::Void Form1_Click(System::Object^ sender,
System::EventArgs^ e)
{
timer1->Enabled = !timer1->Enabled;
}
};
}
,
, .
100 timer1_Click. ,
Opacity 0.1,
s.
Visual Basic
http://subscribe.ru/archive/comp.soft.prog.visualbnet/200512/16181816.html,
C++. ,
Opacity.sln Opacity.
99.
, , ,
Windows. , , , , ,
(GMT Greenwich Meridian Time), , ,
, , , . ,
,
4 , 3 , , 3 , , .
99.
285
, ,
. , ,
Windows
.
www.
central-european-time.com, ,
( - , Central European Time (CET))
.
,
. , , ,
, .
Visual Studio 2010 New Project CLR Visual C++ Windows Forms Application
Visual C++. Toolbox Label Timer.
timer1_Tick .
Form1.h [Design]
, . 12.2.
. 12.2.
12.4.
12.4.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
//
// . ,
//
// ~ ~ ~ ~ ~ ~ ~ ~
// t
// :
bool t;
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
286
12 , Windows Application
12.4 ()
{
t = false;
this->Text = " :";
Form1::Opacity = 0.75;
//
label1->Font = gcnew System::Drawing::Font("Courier New",
18.0F);
label1->Text = String::Empty;
timer1->Interval = 1000; // 1000 = 1
timer1->Start();
}
private: System::Void timer1_Tick(System::Object^ sender,
System::EventArgs^ e)
{
// ,
// : 1000 = 1
label1->Text = " : ";
String ^ ;
t = !t;
// , t = true ^ t;
if (t == true) = String::Format("{0:t}", DateTime::UtcNow);
else = String::Format("{0} {1:00}", DateTime::UtcNow.Hour,
DateTime::UtcNow.Minute);
label1->Text = label1->Text + ;
}
private: System::Void label1_MouseEnter(System::Object^ sender,
System::EventArgs^ e)
{
//
this->Opacity = 1;
}
private: System::Void Form1_MouseLeave(System::Object^ sender,
System::EventArgs^ e)
{
//
this->Opacity = 0.75;
}
};
}
:
( this->Text), Form1::Opacity = 0.75 ( this->Opacity = 0.75). Opacity = 0,
,
, , . Opacity = 1
.
timer1->Start() timer1>Interval = 1000 (1000 , 1 ). ,
100. ,
287
timer1_Tick.
,
. :
= String::Format("{0:t}", DateTime::Now)
.
Visual Studio 2010 UtcNow System::DateTime.
(Universal Coordinated Time, UTC), .
= String::Format("{0:t}", DateTime::UtcNow);
.
, ,
(:), . t,
( ) true false,
false true . ., : t = !t. , Tick (, Interval,
1000 = 1 ) timer1 label1
, .
,
, .
label1_MouseEnter
. (, ,
)
, ,
Form1_MouseLeave.
, .sln
.
100. ,
,
.
,
, .
, ,
, .
288
12 , Windows Application
. , , ,
. ,
, ,
.
, , . , , , ,
.
.
.
, ,
.
, . ,
.
Visual Studio 2010
New Project CLR Visual C++ Windows Forms
Application Visual C++. , , NotifyIcon
ContextMenuStrip. ContextMenuStrip, : .
, , 12.5.
12.5.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// ,
// .
//
//
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
{
this->Text = " ";
//
label1->Size = System::Drawing::Size(292, 90);
//
label1->AutoSize = false;
100. ,
289
label1->Text =
" " +
" . " +
" " +
" \"\"" +
" \" \"\"" +
". " +
" .";
button1->Text = " ";
//
SystemIcons - Windows
notifyIcon1->Icon = SystemIcons::Shield;
//
//
SystemIcons::Information -
notifyIcon1->Text = " ";
notifyIcon1->Visible = false;
// "" notifyIcon1
notifyIcon1->ContextMenuStrip = contextMenuStrip1;
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
//
//
this->Hide(); notifyIcon1->Visible = true;
}
private: System::Void notifyIcon1_MouseDoubleClick(System::Object^ sender,
System::Windows::Forms::MouseEventArgs^ e)
{
// , ,
// ,
// notifyIcon1
notifyIcon1->Visible = false; this->Show();
}
private: System::Void ToolStripMenuItem_Click(
System::Object^ sender, System::EventArgs^ e)
{
double ____ =
System::Environment::TickCount / 1000 / 60;
// "{0:F0} Double :
String ^ ss = String::Format(" {0:F0} ",
____);
MessageBox::Show(ss);
}
private: System::Void ToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{
delete notifyIcon1; // C#: notifyIcon1.Dispose();
Application::Exit();
}
};
}
290
12 , Windows Application
, ,
notifyIcon1. Windows
(notifyIcon1->Icon = SystemIcons::Shield), (notifyIcon1->Visible = false).
. , , .
. . 12.3
12.4 .
. 12.3.
. 12.4.
, ___.
101. .
, Windows-
, , . , .
,
MouseEventArgs ,
, ,
. , Visual Basic,
Visual Basic .NET. 1.
, Visual Studio 2010 New Project CLR
Visual C++ Windows Forms Application Visual C++, , -
101. .
291
, . ,
12.6.
12.6.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// . ,
// "" ,
bool ;
// , = true
int MouseDownX;
int MouseDownY;
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
{
= false;
}
private: System::Void Form1_MouseDown(System::Object^ sender,
System::Windows::Forms::MouseEventArgs^ e)
{
// " ".
//
//
if (e->Button == System::Windows::Forms::
MouseButtons::Left)
{
= true;
MouseDownX = e->X;
MouseDownY = e->Y;
}
}
private: System::Void Form1_MouseUp(System::Object^ sender,
System::Windows::Forms::MouseEventArgs^ e)
{
// ,
//
if (e->Button == System::Windows::Forms::
MouseButtons::Left) = false;
}
private: System::Void Form1_MouseMove(System::Object^ sender,
System::Windows::Forms::MouseEventArgs^ e)
{
// ,
// .
292
12 , Windows Application
12.6 ()
// , = true
if ( == true)
{
auto = System::Drawing::Point();
.X = this->Location.X + (e->X - MouseDownX);
.Y = this->Location.Y + (e->Y - MouseDownY);
this->Location = ;
}
}
};
}
, Form1. Moving
, , .
( MouseDown, e->Button == Left),
Moving = true, .
( MouseUp), Moving = false,
. int (e->X e->Y) . ,
( MouseMove),
Moving = true.
, .sln .
102.
, , Windows
, , .
, , ,
.
,
,
.
Visual Studio 2010 New Project CLR
Visual C++ Windows Forms Application Visual C++.
_. .
, 12.7.
102.
293
12.7.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
// Windows
System::Media::SoundPlayer ^ ;
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
{
this->Text = " ";
= gcnew System::Media::SoundPlayer();
// :
button1->Text = " \"-\"";
button2->Text = " ";
button3->Text = " ";
button4->Text = " = 1000 ";
button5->Text = " Windows XP";
button6->Text = " Windows XP";
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
// WAV-
->SoundLocation = "c:\\windows\\media\\tada.wav";
->Play();
}
private: System::Void button2_Click(System::Object^ sender,
System::EventArgs^ e)
{
// SystemSounds ,
// Windows:
System::Media::SystemSounds::Asterisk->Play();
}
private: System::Void button3_Click(System::Object^ sender,
System::EventArgs^ e)
{
System::Media::SystemSounds::Beep->Play();
}
private: System::Void button4_Click(System::Object^ sender,
System::EventArgs^ e)
{
// 1000 0::5 :
Console::Beep(1000, 500);
}
294
12 , Windows Application
12.7 ()
private: System::Void button5_Click(System::Object^ sender,
System::EventArgs^ e)
{
->SoundLocation =
"c:\\windows\\media\\ Windows XP.wav";
->Play();
}
private: System::Void button6_Click(System::Object^ sender,
System::EventArgs^ e)
{
->SoundLocation =
"c:\\windows\\media\\ Windows XP.wav";
->Play();
}
};
}
,
( , ).
,
C:\Windows\Media, - .
. 12.5.
,
_.sln _.
. 12.5.
Windows
295
,
Choose Items ( ). COM Components Windows Media Player OK.
Windows Media Player, - .
, . Debug Interop : AxInterop.WMPLib.1.0.dll Interop.
WMPLib.1.0.dll.
Windows Media Player.
Toolbox
MenuStrip. Type Here.
. . , . 12.6.
. 12.6.
12.8.
12.8. Windows Media Player 11
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// Windows Media Player 11
OpenFileDialog ^ openFileDialog1;
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
{
openFileDialog1 = gcnew OpenFileDialog();
//
this->Text = "Windows Media Player, = " +
axWindowsMediaPlayer1->versionInfo;
}
296
12 , Windows Application
12.8 ()
private: System::Void ToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{
// .
// :
openFileDialog1->ShowDialog();
//
axWindowsMediaPlayer1->URL = openFileDialog1->FileName;
// axWindowsMediaPlayer1->URL = "C:\\WINDOWS\\Media\\tada.wav";
//
axWindowsMediaPlayer1->Ctlcontrols->play();
// : PLAY
// axWindowsMediaPlayer1->openPlayer(openFileDialog1->FileName);
}
private: System::Void ToolStripMenuItem_Click(System::Object^ sender,
System::EventArgs^ e)
{
//
Application::Exit();
}
private: System::Void ToolStripMenuItem_Click(
System::Object^ sender, System::EventArgs^ e)
{
// .
// PLAY,
// :
if (axWindowsMediaPlayer1->playState ==
WMPLib::WMPPlayState::wmppsPlaying)
axWindowsMediaPlayer1->fullScreen = true;
}
private: System::Void ToolStripMenuItem_Click(
System::Object^ sender, System::EventArgs^ e)
{
//
axWindowsMediaPlayer1->Ctlcontrols->pause();
}
private: System::Void playToolStripMenuItem_Click(
System::Object^ sender, System::EventArgs^ e)
{
// Play
axWindowsMediaPlayer1->Ctlcontrols->play();
}
private: System::Void ToolStripMenuItem_Click(
System::Object^ sender, System::EventArgs^ e)
{
//
axWindowsMediaPlayer1->settings->mute = true;
}
297
,
OpenFileDialog.
, 25 (. 4),
, .
Windows Media Player, = .
versionInfo.
ShowDialog .
URL.
,
.
openPlayer.
: ( ,
wmppsPlaying), ,
Play, , , , .
. 12.7.
. 12.7.
298
12 , Windows Application
, Player.sln
Player.
104.
, ,
mp3, wma, mid . .
, , .
Visual Studio 2010 New
Project CLR Visual C++ Windows Forms
Application Visual C++. Player.
Toolbox
Button. ,
,
.
. ProjectProperties
()Add Reference ( ) Browse ()
C:\Windows\system32\wmp.dll. ,
Windows Media Player . , , ,
Widows Media Plaer,
. ,
12.9.
12.9.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
}
#pragma endregion
//
WMPLib::WindowsMediaPlayer ^ ;
OpenFileDialog ^ ;
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
{
// .
// ProjectPropertiesAdd Reference
// Browse () C:\Windows\system32\wmp.dll
104.
299
= gcnew WMPLib::WindowsMediaPlayer();
= gcnew OpenFileDialog();
//
this->Text = "Windows Media Player " + ->versionInfo;
button1->Text = "";
button2->Text = " ";
button3->Text = " ";
// :
// ->URL = "C:\\VenSalvrme.wma";
->URL = "C:\\WINDOWS\\Media\\town.mid";
// ->URL = "C:\\juliana-best_of_best.mp3";
->settings->volume = 10;
//
->controls->play();
}
private: System::Void button1_Click(System::Object^ sender,
System::EventArgs^ e)
{
// :
// :
->ShowDialog();
//
->URL = ->FileName;
//
->controls->play();
}
private: System::Void button2_Click(System::Object^ sender,
System::EventArgs^ e)
{
// :
->settings->volume = ->settings->volume + 10;
}
private: System::Void button3_Click(System::Object^ sender,
System::EventArgs^ e)
{
// :
->settings->volume = ->settings->volume - 10;
}
};
}
WindowsMediaPlayer. URL.
,
.
,
.
. 12.8.
300
12 , Windows Application
. 12.8
, Player.sln Player.
105.
.
,
. ,
( ) .
, .
Windows Forms
Application Visual C++, . Toolbox, , , . 12.9.
. 12.9.
,
, .
( 12.10).
12.10.
// ...............
// , , Visual Studio
// ,
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
// ,
// ( )
// . ,
//
// ,
private: System::Void Form1_Load(System::Object^ sender,
System::EventArgs^ e)
105. .
301
{
MaximizeBox = false; // -
MinimizeBox = false; // -
// ,
//
HelpButton = true;
this->Text = " ";
button1->Text = ""; button2->Text = "";
textBox1->Clear(); textBox2->Clear(); textBox3->Clear();
label1->Text = " /"; label2->Text = "";
label3->Text = " ";
HelpProvider ^ helpProvider1 = gcnew HelpProvider();
helpProvider1->SetHelpString(textBox1,
" ");
helpProvider1->SetHelpString(textBox2,
" ");
helpProvider1->SetHelpString(textBox3,
" ");
helpProvider1->SetHelpString(button1,
" ");
helpProvider1->SetHelpString(button2,
" ");
// , help-
// <F1>
helpProvider1->HelpNamespace = "mspaint.chm";
}
};
}
. ,
( ), :
MaximizeBox = false;
MinimizeBox = false;
: HelpButton = true.
helpProvider1, , Toolbox.
.
, ToolTip (. 8 1).
HelpNamespace help-, F1. mspaint.chm,
MS Paint, Windows,
Windows. CHM
Microsoft . CHM-,
,
. , , CHM HLP- Windows.
, Help.sln
Help.
302
12 , Windows Application
, ( )
( ) ().
(setup.exe, *.msi, *.dll, *.tlb . .).
setup.exe, msi-,
. -, InstallShild, InnoSetup
. Visual Studio 2010. AutoCAD (. 60 9).
Visual Studio 2010, , New Project
Other Project Types Setup and Deployment ( ), Visual Studio Installer Setup Project.
Location , , C:\New, OK.
Project AddFile. exe- , msi- ,
ACADm.exe, Interop.AutoCAD.dll. Solution
Explorer ( ) exe- tlb-,
dll- msm-. Solution Explorer ACAD.
TLB. ,
- ocx- - . msi-.
BuildBuild Setup1. C:\New\Debug Setup.exe Setup1.msi. -
, - -. .
setup.exe,
, C:\Program Files\Acadm\,
.
, exe- dll- tlb-.
,
.
, ,
MS Visual C++, .
, .
1.
First
, ,
: !
Hover
,
,
, MouseHover
, 4
label1. -
label1
, 5
, ,
, 6
Label
CheckBox
.
^
,
,
TabControl
RadioButton
304
Visible
9
Label ,
, . Visible.
( ToolTip)
, .
ComboBox
10
Unico
,
MessageBox .
R,
11
12
- 13
,
ConsoleMessageBox
MessageBox
, String::Format
VisualBasic
Visual C++ 15
Visual Basic. , , ,
.
Visual Basic:
InputBox, IsNumeric ( ,
) MsgBox
16
Dictionary
.
,
.
for each,
,
30
14
305
17
. ,
ListBox .
ListBox
. ,
ListBox
NewButton
- 18
, ,
Toolbox. :
, , ,
,
.
.
20
.
LinkLabel
- 21
www.mail.ru,
C:\Windows\
LinkLabel
,
22
,
,
.
Backspace,
19
23
306
+Or
, (
)
24
. 25
.
,
TxtUnicode
/
Unicode
26
TXT_1251
/
Windows 1251
27
28
- 29
Rtf
RTF-
, 31
.
( ).
/ .
/
('\t').
/ .
TxtPrint
,
(ReadOnly)
ReadWriteBin
/ - 33
30
32
307
SimpleImage1,
SimpleImage2
SimpleImage3
,
34
PictureBox,
Panel,
36
: , ,
, , , .
ListBox
1
2
,
BackColor,
, Visual Studio 2010,
ListBox
37
38
39
( )
. ,
: , ,
. . (. Graphics)
BMP
bmp
_JPG
41
Graphics, JPG-
42
43
35
40
308
Spline
, () .
.
,
()
45
. ,
TXT
46
- ,
Bitmap
47
AltPrintScreen
Alt+PrintScreen Send SendKeys
48
SaveBMP
,
, BMP-
49
Timer
50
Timer.
ListBox.
,
Save
5
Pic1.BMP,
Pic2.BMP . .
Txt
52
,
String::Format. , MenuStrip
,
44
51
309
TxtPrint
. TextBox.
53
_HTM
Internet Explorer.
.
HTML.
- Internet Explorer
54
Grid
55
,
DataGridView ( ). DataGridView
GridView
56
, -. .
,
. ,
DataGridView,
-
57
,
, , . .
XML.
C:\tabl.xml.
,
Grid
. DataGridView
58
310
59
( , )
( ,
, -).
( ).
, .
.
,
Chart
,
Chart DataGridView, ()
.
DataTable
60
WebHTM
WebBrowser.
HTML
<tr> ( )
<td> ( )
61
62
FlashWeb
WebBrowser Flash-
Split
63
WebBrowser -
HTML-
64
WebBrowser
http://yahoo.com. ,
DomDocument
( WebBrowser), IHTMLDocument2.
- .
-,
Submit.
WebBrowser ,
,
, WebClient, 65
- www.
cbr.ru,
Label. ,
PictureBox
, URL-
1 - , 2
-
.
CheckSpelling
MS Word
66
Word
67
MS Word: , ,
MS Word
Excel
MS Excel
= 3,14...
68
69
Excel
311
Pmt() MS Excel -
Excel
- 70
MS Excel
Excel
(),
MS Excel
71
ACAD
AutoCAD
.
DWG. : AutoCAD 2008,
,
, C:\.
dwg AutoCAD
72
312
Matlab
Matlab
Matlab
, 74
MATLAB, . ,
MessageBox
_PDF_1
_PDF_2
PDF- ,
75
_PDF__1
_PDF__2
,
PDF-
76
_PDF__1
_PDF__2
,
PDF-
77
_SQL_Server
SQL Server
78
Visual Studio 2010.
,
,
:
,
_SQL_Server_
SQL Server ( *.sdf)
Command
DataReader
73
79
DataReader
81
MS Access
Command DataReader
MS Access,
new_BD.mdb.
,
.
C++ 2010, MS Access.
ADO.NET
82
313
MS Access. .
,
.
,
84
MS Access. Command SQL-
(Insert)
ReaderGridView
Command,
DataReader DataGridView
( )
85
GridView
DataGridView
Command, Adapter DataSet
86
Update
(Update)
MS Access
87
SQL-
Command
88
Linq
- 89
, .
,
.
LINQ-
( VB C#) LINQ
Linq1
Linq2
, ,
90
, ,
,
Linq
Linq
83
91
314
LinqXML
XML-. 92
XML-.
XML-:
, ,
,
, . XML-
,
,
. XML ,
. MS Excel,
Xml1
Xml2
XML,
93
.
XML-
Xml
94
XML-,
, .
, ( XML)
LinqPiter
XML- (),
95
, .
() XML-
DataSet
96
DataGridView,
.
,
XML,
DataGridView : .
XML-.
- DataSet
.
System::Xml::Linq
315
, ,
Opacity
- 98
.
: , .
. .
, . .
99
.
,
___
, 100
.
.
,
,
101
Windows
102
Player
103
Windows Media Player 11
Player
Help
105
,
( )
.
,
97
104
.
.
.
.
.
.
?
!
?
?
? ,
?
!
!
www.piter.com/ePartners
www.piter.com,
,
( www.piter.com)
!
.
10% ,
, - c
. ,
, 5%
.
, , 500 ,
. Web.Money.
:
http://www.piter.com/book.phtml?978538800282
http://www.piter.com/book.phtml?978538800282&refer=0000
, 0000
WWW.PITER.COM
, ,
,
/ . , . ., . 29
./: (812) 7037373, 7037372; email: sales@piter.com
. , ., . 2/1, . 1, 6
./: (495) 23438-15, 97434-50; e-mail: sales@msk.piter.com
, .
: (812) 703/73/73. E/mail: fuganov@piter.com
.
: / (812) 703/73/72, (495) 974/34/50
.: (812) 7037373.
mail: kozin@piter.com
: www.piter.com; .: (812) 703-73-74
ICQ 413763617
!
.
./: (4232) 238212
email: bookbase@mail.primorye.ru
,
.: (3952) 200917, 241777
email: prodalit@irk.ru
http://www.prodalit.irk.ru
, , . , . 1
.: (4212) 360665, 339531
email: dkniga@mail.kht.ru
,
./: (3952) 252590
email: kkcbooks@bk.ru
http://www.kkcbooks.ru
,
.: (4212) 328551, : (4212) 328250
email: postmaster@worldbooks.kht.ru
,
.: (4212) 394960
email: zakaz@booksmirs.ru
, , . , . 3
.: (8182) 654134, 653879
email: marketing@avfkniga.ru
, , . , . 4
.: (4732) 267777
http://www.amital.ru
, ,
./: (4012) 215628, 6 56568
email: nshibkova@vester.ru
http://www.vester.ru
, ,
, .15
.: (846) 3312233
email: chaconne@chaccone.ru
,
. , . 58
.: (4732) 512893, 470081
email: manager@kmsvrn.ru
, , . , 424
./: (87934) 69309
email: rossy@kmw.ru
,
. , . 86
./: (3912) 273971
email: bookworld@public.krasnet.ru
,
.: (383) 3361026
: (383) 3361027
email: office@topkniga.ru
http://www.topkniga.ru
, ,
.: (843) 2723455
email: tais@bancorp.ru
,
. , . 12
./: (343) 3581898, 3581484
email: domknigi@k66.ru
,
. , . 1
./: (343) 228-10-70
e-mail: igm@lumna.ru
http://www.lumna.ru
,
. , . 124
.: (351) 2477403, 2477409,
2477416
email: zakup@intser.ru
http://www.fkniga.ru, www.intser.ru
:
: www.piter.com
: postbook@piter.com
: (812) 703/73/74
: 197198, /, / 127,
ICQ: 413763617
:
.
.
,
.
. : . Web-money USD
E-Gold, MoneyMail, INOCard, RBK Money (RuPay), USD Bets, Mobile Wallet
.
, ,
.
.
.
e-mail.
:
, , , , , email;
, , , , , ,
, ;
, , .