Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Аноним
 Аватар для Di3go
5 / 5 / 4
Регистрация: 15.12.2013
Сообщений: 149

E2451 Undefined symbol 'PaintBox1'

16.09.2015, 20:16. Показов 1856. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Как можно использовать PaintBox вне событий? Лучше бы как лишние функции и переменные закинуть как-то в другой файл.

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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <stdlib.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
const int scope = 10;
const int x0 = 1;
const int y0 = 1;
const int wight = 47;
const int height = 29;
int age = 0;
int field[height][wight];
 
void DrawCell(int x, int y)
{
    PaintBox1->Canvas->Pen->Color = clGreen; /// на это ругается
    PaintBox1->Canvas->Rectangle(x0+(x-1)*scope, y0+(y-1)*scope, x0+x*scope-1, y0+y*scope-1);
}
 
void CleanField()
{
    for(int i = 0; i < height; i++)
        for(int j = 0; j < wight; j++)
            field[height][wight] = 0;
}
 
void DrawField()
{
 
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
PaintBox1->Canvas->Pen->Color = clGray;
PaintBox1->Canvas->MoveTo(0, 0);
for(int i = 0; i < PaintBox1->Width; i+=scope)
{
    PaintBox1->Canvas->LineTo(i, PaintBox1->Height);
    PaintBox1->Canvas->MoveTo(i+scope, 0);
}
PaintBox1->Canvas->MoveTo(0, 0);
for(int i = 0; i < PaintBox1->Height; i+=scope)
{
    PaintBox1->Canvas->LineTo(PaintBox1->Width, i);
    PaintBox1->Canvas->MoveTo(0, i+scope);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::PaintBox1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
 
 
int x = X / scope + x0;
int y = Y / scope + y0;
Label1->Caption = x;
Label2->Caption = y;
if(field[x-1][y-1] == 0)
{
    DrawCell(x, y);
    field[x-1][y-1] = 1;
}
else
{
    PaintBox1->Canvas->Pen->Color = clMenu;
    PaintBox1->Canvas->Rectangle(x0+(x-1)*scope, y0+(y-1)*scope, x0+x*scope-1, y0+y*scope-1);
    field[x-1][y-1] = 0;
}
}
//---------------------------------------------------------------------------
 
 
 
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    CleanField();
}
//---------------------------------------------------------------------------
RAD Studio
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.09.2015, 20:16
Ответы с готовыми решениями:

E2451: Undefined symbol 'A'
void __fastcall TForm1::Button1Click(TObject *Sender) { size1=StrToInt(Form1-&gt;Edit1-&gt;Text); size2=StrToInt(Form1-&gt;Edit2-&gt;Text); ...

E2451 Undefined symbol
Unit2.cpp(45): E2451 Undefined symbol 'Memo1' Unit2.cpp(61): E2268 Call to undefined function 'strcat_s' Unit2.cpp(100): E2451...

E2451 undefined symbol
Помогите исправить ошибку строчка: void TForm1::compute(ang, scl, inv, flw) текст ошибки: e2451 undefined symbol но ang уже...

3
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
16.09.2015, 22:13
Передай ссылку на PaintBox (или на его канву) как параметр
0
Аноним
 Аватар для Di3go
5 / 5 / 4
Регистрация: 15.12.2013
Сообщений: 149
17.09.2015, 13:44  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Передай ссылку на PaintBox (или на его канву) как параметр
Как это можно сделать? Помогите, пожалуйста.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
17.09.2015, 13:50
Лучший ответ Сообщение было отмечено BRcr как решение

Решение

C++
1
2
3
4
5
void DrawCell(TCanvas *canvas, int x, int y)
{
    canvas->Pen->Color = clGreen; /// на это уже не ругается
    canvas->Rectangle(x0+(x-1)*scope, y0+(y-1)*scope, x0+x*scope-1, y0+y*scope-1);
}
, вызывать - так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void __fastcall TForm1::PaintBox1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,
          int X, int Y)
{
TPaintBox *pb = static_cast<TPaintBox*>(Sender);
 
int x = X / scope + x0;
int y = Y / scope + y0;
Label1->Caption = x;
Label2->Caption = y;
if(field[x-1][y-1] == 0)
{
    DrawCell(pb->Canvas, x, y); // <--- !!!
    field[x-1][y-1] = 1;
}
else
{
    pb->Canvas->Pen->Color = clMenu;
    pb->Canvas->Rectangle(x0+(x-1)*scope, y0+(y-1)*scope, x0+x*scope-1, y0+y*scope-1);
    field[x-1][y-1] = 0;
}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.09.2015, 13:50
Помогаю со студенческими работами здесь

E2451 Undefined symbol 'Edit1'
Не могу разобраться. В первый раз пишу программы на c++ Builder 6. Какой бы код не написал , выдает ошибку Unit1.cpp(25): E2451...

E2451 Undefined symbol 'List'
Есть вот такой кусок кода и есть три ошибки с листами. Помогите или подскажите что нужно делать ...

Ошибка E2451 Undefined symbol
Начинаю учится в с++ Builder 6, компилирую программу: //--------------------------------------------------------------------------- ...

Ошибка E2451 Undefined symbol 'Form4'
Добрый день, программисты. Я новичок в программировании и у меня возник такой вопрос: я создал формы , кнопки. С помощью кнопок...

[C++ Error](248): E2451 Undefined symbol 'FFTPeacks'
Здравствуйте, пишу свой плеер с использованием bass.dll Завис на визуализации. Вот есть код: void draw(); { float...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru