С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 1
Регистрация: 11.02.2018
Сообщений: 133

[C++ Error] Unit1.cpp(14): E2251 Cannot find default constructor to initialize base class 'TForm'

15.01.2019, 10:36. Показов 2312. Ответов 16

Студворк — интернет-сервис помощи студентам
Подскажите как исправить ошибку, см рисунок.
Миниатюры
[C++ Error] Unit1.cpp(14): E2251 Cannot find default constructor to initialize base class 'TForm'  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.01.2019, 10:36
Ответы с готовыми решениями:

E2251 Cannot find default constructor to initialize base class TImage
Идея такая.. хочу сделать создание объекта моего класса, который является наследником TImage. Ошибка-собственно сабж... Как я понимаю, он...

Ошибка Cannot find default constructor to initialize base class
class CompGame: public TForm { public: int z; CompGame(int l=0){z=l;} };есть класс примерно токого типа при компиляция...

E2251 Cannot find default constructor to initialize base class
Здравствуйте. Столкнулся с данной ошибкой: class fCountry { public: fCoutry(void) ...

16
0 / 0 / 1
Регистрация: 11.02.2018
Сообщений: 133
15.01.2019, 10:49  [ТС]
Я не знаю что такое конструктор класса и почему у меня в нем ошибка.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33369 / 21495 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
15.01.2019, 12:56
Нужно показывать не скриншот кода, а проект ПОЛНОСТЬЮ, в котором вылетает ошибка. К врачу ты тоже посылаешь свое фото, или все-таки идешь сам(а)?
0
0 / 0 / 1
Регистрация: 11.02.2018
Сообщений: 133
15.01.2019, 14:26  [ТС]
volvo, файлы проекта прикреплены
Вложения
Тип файла: rar proj3.rar (715.2 Кб, 2 просмотров)
0
0 / 0 / 1
Регистрация: 11.02.2018
Сообщений: 133
15.01.2019, 14:30  [ТС]
bmp.h

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
#include <io.h>
#include <stdio.h>
#pragma pack(1) 
 
struct FileHeader 
{
    WORD bfType;        //тип файла
    DWORD bfSize;       //размер файла в dword
    WORD bfReserved1;   //не используется
    WORD bfReserved2;   //не используется
    DWORD bfOffbits;    //смещение данных битового образа от заголовка в байтах
};
 
struct MAPINFO 
{
    DWORD Size;         //число байт, занимаемых структурой InfoHeader
    DWORD Width;        //ширина битового образа в пикселях
    DWORD Height;       //высота битового образа в пикселях
    WORD Planes;        //число битовых плоскостей устройства
    WORD BitCount;      //число битов на пиксель
    DWORD Compression;  //тип сжатия
    DWORD SizeImage;    //размер картинки в байтах
    long XPelsPerMeter; //горизонтальное разрешение устройства, пиксель/м
    long YPelPerMeter;  //вертикальное разрешение устройства, пиксель/м
    DWORD ClrUsed;      //число используемых цветов
    DWORD ClrImportant; //число "важных" цветов
};
 
struct RGBquad 
{
    byte rgbRed;          //интенсивность красного
    byte rgbGreen;        //интенсивность зеленого
    byte rgbBlue;         //интенсивность голубого    
    byte rgbReserved;     //не используется
};
 
class Bmp
{
private:
    void *pBmp;
    long SizeFile;
public:
    Bmp();
    ~Bmp();
    void Open(char* fn);
    void Save(char* fn);
    FileHeader *GetFH();
    MAPINFO *GetMapInfo();
    RGBquad *GetMap();
};
 
void Bmp::Save(char* fn)
{
        FILE* File;
        File=fopen(fn,"wb");
        fwrite(pBmp,1,SizeFile,File);
        fclose(File);
}
 
RGBquad *Bmp::GetMap()
{
    RGBquad *rgb;
    rgb=(RGBquad *)((long)pBmp+sizeof(FileHeader)+sizeof(MAPINFO));
    return rgb;
}
 
MAPINFO *Bmp::GetMapInfo()
{
    MAPINFO *mi;
    mi=(MAPINFO*)((long)pBmp+sizeof(FileHeader));
    return mi;
}
 
FileHeader *Bmp::GetFH()
{
    FileHeader *fh;
    fh=(FileHeader *)pBmp;
    return  fh;
}
 
Bmp::Bmp()
{
    pBmp=0;
    SizeFile=0;
}
 
Bmp::~Bmp()
{
    delete []pBmp;
}
 
void Bmp::Open(char* fn)
{
    FILE* File;
        int hFile;
        File=fopen(fn,"rb");
        hFile=_fileno(File);
        SizeFile=filelength(hFile);
        pBmp=(BYTE*)malloc(SizeFile);
        fread(pBmp,1,SizeFile,File);
        fclose(File);
}

Unit1.cpp

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
//---------------------------------------------------------------------------
#include <vcl.h>
#include "bmp.h"
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    Bmp New;
  FileHeader *fh;
  MAPINFO *mi;
  RGBquad *rgb;
  New.Open("CAT16.BMP");
  fh=New.GetFH();
  mi=New.GetMapInfo();
  rgb=New.GetMap();
  rgb[256].rgbBlue=255;
  rgb[256].rgbGreen=0;
  rgb[256].rgbRed=0;
  int SR;
  for (int i=0; i<256; i++)
  {
  SR=(rgb[i].rgbBlue+rgb[i].rgbGreen+rgb[i].rgbRed)/3;
  rgb[i].rgbBlue=SR;
  rgb[i].rgbGreen=SR;
  rgb[i].rgbRed=SR;
  }
}
/* COMMENT!!!!
New.Save("CAT16-new.BMP");
 
String  str="",temp;
        str=str+"ширина = "+IntToStr(mi->Width)+"\r\n";
        str=str+"высота = "+IntToStr(mi->Height)+"\r\n";
        str=str+"число бит = "+IntToStr(mi->BitCount)+"\r\n";
        str=str+"тип сжатия = "+IntToStr(mi->Compression)+"\r\n";
        str=str+"число байт = "+IntToStr(mi->Size)+"\r\n";
        Memo1->Lines->Text ="   **********  ";
        Memo1->Lines->Add(str);
        Image1->Picture->LoadFromFile("CAT16-new.bmp");
}
*/
//---------------------------------------------------------------------------
0
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,356
Записей в блоге: 3
15.01.2019, 16:22
Muriam, а как у Вас так интересно получилось и сохранилось???
Миниатюры
[C++ Error] Unit1.cpp(14): E2251 Cannot find default constructor to initialize base class 'TForm'  
1
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
15.01.2019, 16:54
Лучший ответ Сообщение было отмечено Muriam как решение

Решение

Muriam, у вас в файле .dfm присутствует объект Memo, а в файлах .cpp и .h о нем не упоминается. Хотя, за исключением этого, проект собирается (только 4 варнинга).
1
0 / 0 / 1
Регистрация: 11.02.2018
Сообщений: 133
15.01.2019, 17:18  [ТС]
D1973, там в свойстве name я похоже стерла название memo1, здесь то и ошибка.
0
0 / 0 / 1
Регистрация: 11.02.2018
Сообщений: 133
15.01.2019, 17:26  [ТС]
Я немного по-другому стала делать.
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
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    CBmp New;
    FileHeader *fh;
    MAPINFO *mi;
    RGBquad *rgb;
    New.Open("CAT16.BMP");
    fh=New.GetFH();
    mi=New.GetMapInfo();
    rgb=New.GetMap();
    rgb[256].rgbBlue=255;
    rgb[256].rgbGreen=0;
    rgb[256].rgbRed=0;
    int SR;
    for (int i=0;i<256;i++){
        SR=(rgb[i].rgbBlue+rgb[i].rgbGreen+rgb[i].rgbRed)/3;
        //255 îòòåíêîâ ñåðîãî
            rgb[i].rgbBlue=SR;
            rgb[i].rgbGreen=SR;
            rgb[i].rgbRed=SR;
    }
    New.Save("CAT16_.BMP");
 
    String str="",temp;
        str=str+"width="+IntToStr(mi->Width)+"\r\n";
        str=str+"heigth="+IntToStr(mi->Height)+"\r\n";
        str=str+"bit="+IntToStr(mi->BitCount)+"\r\n";
        str=str+"Compress="+IntToStr(mi->Compression)+"\r\n";
        str=str+"Size="+IntToStr(mi->Size)+"\r\n";
        Memo1->Lines->Text ="    Îáðàáîòàííîå èçîáðàæåíèå";
        Memo1->Lines->Add(str);
        Image1->Picture->LoadFromFile("CAT16_.bmp");
 
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
     Image1->Picture->LoadFromFile("CAT16.bmp");
}
 
//---------------------------------------------------------------------------
Вложения
Тип файла: rar test.rar (508.0 Кб, 1 просмотров)
0
0 / 0 / 1
Регистрация: 11.02.2018
Сообщений: 133
15.01.2019, 17:34  [ТС]
Чтобы сформировать этот блок кода - что для этого нужно сделать? Чтобы получить TForm1::FormCreate {} ?

C++
1
2
3
4
void __fastcall TForm1::FormCreate(TObject *Sender)
{
     Image1->Picture->LoadFromFile("CAT16.bmp");
}
Добавлено через 4 минуты
а, поняла, дважды щелкнуть по форме
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
15.01.2019, 17:35
Выбрать в Object Inspector'е Form1 и на закладке Events найти строчку OnCreate, двойным мышиным кликом вызвать на редактирование заготовку... я о том?...
1
0 / 0 / 1
Регистрация: 11.02.2018
Сообщений: 133
15.01.2019, 18:50  [ТС]
ура, получилось, теперь картинка становится черно-белой

Добавлено через 4 минуты
nick42, да

Добавлено через 1 час 7 минут
volvo, nick42, D1973,

здесь открывается файл, с ним происходят манипуляции с преобразованием цвета, а потом он сохраняется отдельным файлом как черно-белый.

А можно ли сделать тоже преобразование цвета, но не открывая файл, а заранее вставив картинку с помощью:

image1 -> picture -> (загрузить картинку заранее через picture editor) ?
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,012
16.01.2019, 19:24
LoadFromFile ?
0
0 / 0 / 1
Регистрация: 11.02.2018
Сообщений: 133
16.01.2019, 20:05  [ТС]
gunslinger,

тут вопрос уже отпал, все получилось.
имелось ввиду не из файла загружать, не LoadFromFile, а то что на прикрепленной картинке.


не подскажите, как в компоненте Edit отобразить размер файла картинки?
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,012
16.01.2019, 21:14
C++
1
  Edit1->Text = mi->SizeImage;
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,012
16.01.2019, 21:21
Пример (вывод в Memo, как в проекте выше, но это не имеет особого значения):

0
0 / 0 / 1
Регистрация: 11.02.2018
Сообщений: 133
17.01.2019, 08:33  [ТС]
gunslinger, у меня ошибка при запуске этого кода

я раньше пыталась запустить, подключив заголовочный файл ...

Добавлено через 34 минуты
gunslinger,

Размер файла
ответ на вопрос:

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
__int64 GetBigFileSize(char*path)
{
HANDLE h=CreateFile(path,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL);
if(h!=NULL)
        {
        ULONG sizel=0;
        ULONG sizeh=0;
        sizel=GetFileSize(h,&sizeh);
        __int64 result=sizeh;
        result=result<<32;
        result=result|sizel;
        CloseHandle(h);
        return result;
        }else
        {
        return -1;
        }
}
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShowMessage(IntToStr(GetBigFileSize("F:\\Games\\ДИСКИ\kotor\\KotOR\\KotOR.mdf")));
}
//---------------------------------------------------------------------------
но как это вывести в компоненте edit?

Добавлено через 9 минут
gunslinger,

получилось
C++
1
Edit4->Text = IntToStr(GetBigFileSize("gvozdika_new.bmp"));
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.01.2019, 08:33
Помогаю со студенческими работами здесь

[C++ Error] Unit1.cpp(77): E2285 Could not find a match for 'istream::getline(const AnsiString)'
Добрый день, помогите чайнику. Было всё нормально пока не добавил пункт Name в OpenClic. После этого выскакивает ошибка Unit1.cpp(77):...

[BCC32 Error] Unit1.cpp(15): E2285 Could not find a match for 'Poly::Poly(int)'
TForm1 *Form1; const unsigned int i = 5, j = 2; int mass; int choice_f = 0, counter = 0; Poly pol(mass); вот сам класс class...

ошибка cannot find default constructor
#include &lt;iostream.h&gt; #pragma hdrstop //--------------------------------------------------------------------------- #pragma...

Error C2512: no appropriate default constructor available
Доброго времени суток. Следующий код class A { private: bool b1; bool b2; bool b3; public:

Error C2512: 'CModelDialog' : no appropriate default constructor available
Всем привет. Есть работающий код MFC документ/вид не созданный wizard'ом. Он рабочий, все компилится. Далее создаю для него немодальный...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru