Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для Элеонора
7 / 2 / 0
Регистрация: 20.09.2010
Сообщений: 39

Классы и графика: объяснить работу кода

30.10.2012, 21:41. Показов 667. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Поясните код программы плиз:
1) заголовочный файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Menus.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    
        TImage *Image1;
        TTimer *Timer1;
        TPopupMenu *PopupMenu1;
        TMenuItem *N1;
        TMenuItem *N2;
        TMenuItem *N3;
        void __fastcall FormShow(TObject *Sender);
        void __fastcall Timer1Timer(TObject *Sender);
        void __fastcall N3Click(TObject *Sender);
        void __fastcall N1Click(TObject *Sender);
        void __fastcall N2Click(TObject *Sender);
private:
public:
        __fastcall TForm1(TComponent* Owner);
};
 
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
 
class tPoints
{
private:
int _x,_y;
TColor _color;
int _step_x,_step_y;
public:
tPoints();
void DrawXY(int x, int y, TColor color);
void ReDrawXY(int x, int y, TColor color);
void Dvig();
void Change_step(int step_x, int step_y);
};
 
tPoints::tPoints()
{
_x=_y=0;
_color=clRed;
_step_x=_step_y=0;
return;
}
 
//---------------------------------------------------------------------------
#endif
2) код программы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#include <vcl.h>
#include <iostream.h>
#include <malloc.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
tPoints *obj;
int n;
TColor DefaultColor;
bool tp=false;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
TColor Clr(int i)
{
  switch(i)
  {
    case 0: return clBlack;
    case 1: return clRed;
    case 2: return clBlue;
    case 3: return clGreen;
    case 4: return clYellow;
    case 5: return clLime;
    case 6: return clFuchsia;
    case 7: return clAqua;
    default : return clWhite;
  }
}
 
void tPoints::DrawXY(int x, int y, TColor color)
{
_x=x;
_y=y;
_color=color;
Form1->Image1->Canvas->Pen->Color=_color;
Form1->Image1->Canvas->MoveTo(_x,_y);
Form1->Image1->Canvas->LineTo(_x,_y);
return;
}
 
void tPoints::ReDrawXY(int x, int y, TColor color)
{
Form1->Image1->Canvas->Pen->Color=DefaultColor;
Form1->Image1->Canvas->MoveTo(_x,_y);
Form1->Image1->Canvas->LineTo(_x,_y);
_x=x;
_y=y;
_color=color;
Form1->Image1->Canvas->Pen->Color=_color;
Form1->Image1->Canvas->MoveTo(_x,_y);  //òåêóùàÿ ïîçèöèÿ êàíâû
Form1->Image1->Canvas->LineTo(_x,_y);  //ïðÿìàÿ äî çàäàííîé òî÷êè
return;
}
 
void tPoints::Dvig()
{
Form1->Image1->Canvas->Pen->Color=DefaultColor;
Form1->Image1->Canvas->MoveTo(_x,_y);
Form1->Image1->Canvas->LineTo(_x,_y);
if(_x==0 && _step_x<0) _step_x=1;
if(_y==0 && _step_y<0) _step_y=1;
if(_x==Form1->Width-10 && _step_x>0) _step_x=-1;
if(_y==Form1->Height-40 && _step_y>0) _step_y=-1;
_x+=_step_x;
_y+=_step_y;
Form1->Image1->Canvas->Pen->Color=_color;
Form1->Image1->Canvas->MoveTo(_x,_y);
Form1->Image1->Canvas->LineTo(_x,_y);
return;
}
 
void tPoints::Change_step(int step_x, int step_y)
{
 _step_x=step_x;
 _step_y=step_y;
 return;
}
 
void __fastcall TForm1::FormShow(TObject *Sender)
{
int i;
n=StrToInt(InputBox("Ââåäèòå êîëè÷åñòâî òî÷åê","","100"));
obj=(tPoints *)malloc(n*sizeof(tPoints));
Form1->Image1->Canvas->Pen->Width=5;
DefaultColor=Form1->Image1->Canvas->Pixels[0][0];
for (i=0; i<n; i++){
        (obj+i)->DrawXY(random(Form1->Width-10), random(Form1->Height-40), Clr(random(8)));
        (obj+i)->Change_step(random(3)-1,random(3)-1);
        }
Form1->Timer1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
int i;
Form1->Image1->Canvas->Pen->Width=5;
for (i=0; i<n; i++){
        (obj+i)->Dvig();
        if (tp) (obj+i)->Change_step(random(3)-1,random(3)-1);
        }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N3Click(TObject *Sender)
{
Timer1->Interval=StrToInt(InputBox("Interval..","",IntToStr(Timer1->Interval)));
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::N1Click(TObject *Sender)
{
tp=false;        
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::N2Click(TObject *Sender)
{
tp=true;        
}
//---------------------------------------------------------------------------
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.10.2012, 21:41
Ответы с готовыми решениями:

Объяснить работу кода
Объясните что это означает for(char *s=str; (s=strstr( s, &quot;mama&quot;))!=NULL &amp;&amp; *s; s+=1, ++c)

Объяснить работу кода
if (textBox5.Text.Length &lt;= 16 &amp;&amp; textBox5.Text != 'a') button3.BackColor = Color.Yellow; else ...

Объяснить работу кода
Объясните что происходит в данном коде #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include&lt;cmath&gt; int _tmain(int argc, _TCHAR*...

1
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
31.10.2012, 01:19
Библиотека VCL и сопутствующие материалы
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.10.2012, 01:19
Помогаю со студенческими работами здесь

Объяснить работу кода
{ get; private set; } - а что означает эти строки? и ведь может быть продолжение кода, как оно будет выглядеть?? Добавлено через 39...

Объяснить работу кода
Каким образом работает данная дичь? #include &lt;windows.h&gt; LRESULT CALLBACK WindowProcess(HWND, UINT, WPARAM, LPARAM); int...

Объяснить работу кода
Я написал код но я не понимаю что он делает, можете сказать?: string str = new String { };

Объяснить работу кода
объясните пож. что делается в строчках ниже cbData dd ? ; я так понимаю это объявление переменной dd это dword? а что...

Объяснить работу кода
&lt;script&gt; function Validate(obj) { var login=obj.login.value; var password=obj.password.value; var passagain=obj.passagain.value; ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru