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

Создание класса, в котором полем была бы картинка

15.01.2012, 13:48. Показов 2167. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, можно ли создать класс ,в котором полем была бы картинка? Если можно скиньте пожалуйста ссылку на литературу или книжку.

 Комментарий модератора 
Темы дублировать нехорошо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.01.2012, 13:48
Ответы с готовыми решениями:

Создание объекта класса с полем являющимся объектом другого класса
Bill a; cin>>a;//тут я ввел с помощью перегруженного оператора ElementSpiska c; //поля у Spiska(Bill A,int,string,int) ...

Определить месяц, в котором прибыль была максимальна и месяц, в котором прибыль была минимальна.
Пользователь вводит прибыль фирмы за год (12 месяцев). Необходимо определить месяц, в котором прибыль была максимальна и месяц, в котором...

Создание класса в котором есть массив и прцедуры работы с ним
Здравствуйте, уважаемы программисты! Помогите пожалуйста решить проблему при создании класса TBlocks. При запуске программы возникает...

22
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
15.01.2012, 23:15
Цитата Сообщение от antel Посмотреть сообщение
в котором полем была бы картинка?
Каким полем? полем ввода типо TEdit?
Если да, то как картинка может играть роль поля ввода?
Или мб, фон поля ввода - картинка?

Ставьте задачу конкретнее
0
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
15.01.2012, 23:27
__bool,
Ето я вот так понял

Создать TImage класс на форме, в котором поместится картинка...

Не по теме:

А то как то не так выходит :(


Я провилня понял antel?
0
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
15.01.2012, 23:59
Цитата Сообщение от Programmer. Посмотреть сообщение
Создать TImage класс на форме, в котором поместится картинка...
Какой же в этом смысл?
0
 Аватар для SecretSilent
81 / 81 / 9
Регистрация: 16.02.2010
Сообщений: 637
16.01.2012, 18:04
Цитата Сообщение от antel Посмотреть сообщение
Подскажите пожалуйста, можно ли создать класс ,в котором полем была бы картинка? Если можно скиньте пожалуйста ссылку на литературу или книжку.

Темы дублировать нехорошо.
ну как бы ставите тип данных TImage и все. вот вам поле типа картинка в классе. что мешает?
0
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
16.01.2012, 18:40
Цитата Сообщение от SecretSilent Посмотреть сообщение
вот вам поле типа картинка в классе. что мешает?
В этой теме теперь все будут отвечать непонятно?

TImage отличный готовый класс, какой смысл создавать класс со вложенным классом TImage, если нет нужды перегружать что-либо?
Автор темы просто сам не знает чего хочет
0
3 / 3 / 0
Регистрация: 23.10.2010
Сообщений: 101
16.01.2012, 19:29  [ТС]
Хочу создать класс Карта в котором были бы поля типа:
-стоимость карты
-масть карты
-изображение карты
0
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
16.01.2012, 20:17
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class TCard : public TImage
{
private:
public:
    __fastcall explicit TCard(TComponent* Owner,unsigned int price, unsigned int suit):TImage(Owner)
    {
        Price=price;
        Suit=suit;
    }
        __fastcall ~TCard(){}
    unsigned int Price; // Стоимость
    unsigned int Suit; // Масть
};
Добавлено через 26 минут
Создание и проверка(к примеру зальем фоном, чтоб убедиться, что карта создана):
C++
1
2
3
TCard *card1 = new TCard(this,40,1);
card1->Canvas->Brush->Color = clBlack;
card1->Canvas->FillRect(Rect(0,0,card1->Width,card1->Height));
0
3 / 3 / 0
Регистрация: 23.10.2010
Сообщений: 101
16.01.2012, 20:21  [ТС]
Спасибо буду разбираться.
Только вопрос
C++
1
2
3
4
5
6
 __fastcall explicit TCard(TComponent* Owner,unsigned int price, unsigned int suit):TImage(Owner)
        {
                Price=price;
                Suit=suit;
        }
        __fastcall ~TCard();
что это?
0
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
16.01.2012, 20:33
Цитата Сообщение от antel Посмотреть сообщение
Спасибо буду разбираться.
Только вопрос
C++
1
2
3
4
5
6
__fastcall explicit TCard(TComponent* Owner,unsigned int price, unsigned int suit):TImage(Owner)
        {
                Price=price;
                Suit=suit;
        }
        __fastcall ~TCard();
что это?
Я исправил(скобки к деструктору добавь {})
Это класс-потомок от стандартного vcl-класса TImage
в который добавлены необходимые вам переменные-члены(которые вы называете поля)
Конкретно __fastcall explicit TCard() и __fastcall ~TCard(); - конструктор и деструктор соответственно
Конструктор вызывается при создании объекта, деструктор при разрушении(удалении)
explicit у конструктора по привычке пишу, чтоб не было проблем с неявным преобразованием
(в определенных ситуациях очень полезно)

Добавлено через 6 минут
Я бы еще добавил Left и Top, чтоб сразу в конструкторе указывать место положения:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class TCard : public TImage
{
private:
public:
    __fastcall explicit TCard(
    TForm* Owner,
    int price,
    int suit,
    int top,
    int left
    ):TImage(Owner)
    {
        Price=price;
        Suit=suit;
        this->Left=left;
        this->Top=top;
        this->Parent = Owner;
    }
    __fastcall ~TCard(){}
    int Price; // Стоимость
    int Suit; // Масть
};
C++
1
2
3
TCard *card1 = new TCard(this,40,1,5,5);
card1->Canvas->Brush->Color = clBlack;
card1->Canvas->FillRect(Rect(0,0,card1->Width,card1->Height));
0
3 / 3 / 0
Регистрация: 23.10.2010
Сообщений: 101
16.01.2012, 20:53  [ТС]
Спасибо огромное. Деструктор и конструктор я знаю что просто в таком виде не разу не видел.
0
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
16.01.2012, 22:14
Только не уверен, что деструктор TImage вызовется автоматически при удалении TCard..
(если не вызывается - утечка памяти все дела..)
К тому же тебе ведь еще нужно карту визуально убирать
У конструктора TCard то мы явно вызываем конструктор TImage:
C++
1
2
3
4
5
6
7
__fastcall explicit TCard(
        TForm* Owner,
        int price,
        int suit,
        int top,
        int left
        ):[B]TImage(Owner)[/B]
Добавлено через 13 минут
Удаляется отлично!
Проверил так:
C++
1
TCard *card1;
Создание:
C++
1
2
3
4
5
6
for (int i = 0; i < 10; ++i) {
    card1 = new TCard(this,40,1,5,20*i);
    card1->Name = "Card"+IntToStr(i);
    card1->Canvas->Brush->Color = RGB(Random(256),Random(256),Random(256));
    card1->Canvas->FillRect(Rect(0,0,card1->Width,card1->Height));
}
Удаление:
C++
1
2
3
for (int i = 0; i < 10; ++i) {
    delete Form1->FindComponent("Card"+IntToStr(i));
}
1
3 / 3 / 0
Регистрация: 23.10.2010
Сообщений: 101
16.01.2012, 22:29  [ТС]
Спасибо огромное

Добавлено через 8 минут
C++
1
this->Left=left;
что обозначает "this"?
0
 Аватар для __bool
288 / 229 / 27
Регистрация: 13.06.2010
Сообщений: 744
16.01.2012, 23:40
Цитата Сообщение от antel Посмотреть сообщение
что обозначает "this"?
Дословно "этот". Я б сказал это указатель на объект с методами/переменными-членами которого работаешь, если описываем какой-либо класс, this указывает на сам класс

Указатель this

Любой метод класса самостоятельно определяет, для какого объекта он был вызван и "видит" другие члены класса без передачи их в качестве параметров. Зададимся вопросом: как это происходит?!

Ответ на этот вопрос не является секретом. Дело в том, что когда функция, принадлежащая классу, вызывается для обработки данных конкретного объекта, этой функции автоматически и неявно передается указатель на тот объект, для которого функция вызвана. Этот указатель имеет фиксированное имя this и незаметно для программиста определен в каждой функции класса.

Указатель this инициализируется значением адреса объекта, для которого вызван метод, перед началом выполнения кода этого метода.
Имя this является служебным (ключевым) словом.
Явно описать или определить указатель this нельзя.
В соответствии с неявным определением this является константным указателем, т.е. изменять его нельзя, однако в каждой принадлежащей классу функции он указывает именно на тот объект, для которого функция вызывается.
Объект, который адресуется указателем this, становится доступным внутри принадлежащей классу функции именно с помощью указателя this.
Внутри функции - члена класса можно явно использовать этот указатель.
Указатель this является очень полезным, а иногда просто незаменимым. Например, в следующем коде указатель this позволяет компилятору разобраться в ситуации, когда имя компонента класса совпадает с именем формального параметра, принадлежащего методу:

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
# include <iostream>
using namespace std;
 
class Student   // Класс студент.
{    
    char name[50]; // имя
    char surname[50]; // фамилия
    int age; // возраст
public:
    //Конструктор: 
    Student(char name[],char surname[],int age)
    { 
        // Компоненты и одноименные параметры: 
        strcpy(this->name,name);
        strcpy(this->surname,surname);
        this->age=age;
    }
    void Show()
    { 
        // Здесь this является необязательным,
        // однако использовать его можно
        cout << "\nNAME - " << this->name; 
        cout << "\nSURNAME - " << this->surname; 
        cout << "\nAGE - " << this->age;
        cout << "\n\n";
    }
}; 
 
void main(void)
{ 
    Student A("Ivan","Sidoroff",25);    
    A.Show();
}
Указатель this
1
 Аватар для Gus
26 / 37 / 10
Регистрация: 17.02.2009
Сообщений: 364
17.01.2012, 10:33
Стандартный компонент Image - параметр Picture будет вам картинкой.
0
3 / 3 / 0
Регистрация: 23.10.2010
Сообщений: 101
27.01.2012, 17:47  [ТС]
TCard *karta являеться указателем на класс,а как создать массив из такого класса?
0
 Аватар для QVO
652 / 462 / 80
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
28.01.2012, 01:29
C++
1
TCard *karta[20];
0
3 / 3 / 0
Регистрация: 23.10.2010
Сообщений: 101
30.01.2012, 22:15  [ТС]
C++
1
[B]TImage(Owner)[/B]
Простите, я наверное уже всем надоел, но всё же решусь спросить ,
что означают теги B???
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
30.01.2012, 23:02
antel, теги B означают полужирное начертание шрифта, и работают везде, только не внутри тега кода, если цитируете код и хотите на что-нибудь обратить внимание, используйте комментарии:
C++
1
2
3
4
// обратите внимание:
// это - комментарий
/* это - тоже комментарий,
но - многострочный */
Почитайте это: https://www.cyberforum.ru/abou... 03521.html
0
3 / 3 / 0
Регистрация: 23.10.2010
Сообщений: 101
30.01.2012, 23:08  [ТС]
спасибо туплю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.01.2012, 23:08
Помогаю со студенческими работами здесь

XmlJava. Сериализация класса с полем - массивом объектов другого класса
Есть 2 класса Студент и Академ.группа(с полем - массивом студентов). Необходимо выполнить сериализацию и десереализацию в XML. Для этого...

Как сделать чтобы картинка на форме меню была цветной
Подскажите пожалуйста как сделать , или укажите в коде . Спасибо package JAVA; import java.awt.event.ActionEvent; import...

Как сделать, чтобы была заглушка, когда не загружена картинка
как сделать так что бы была заглука когда не загружена картиинка http://site.ru/images/maps/'.$cache.'.jpg вот сам код а хотел бы я с...

Не могу удалить папку, если из нее была открыта картинка
Есть на диске n папок, с именами 0, ... , n-1, в каждой папке по 2 картинки с именами x1.jpg и x2.jpg Программа: 3 кнопки, показать...

Как сделать,чтоб картинка фона была по центру? в HTML
как сделать,чтоб картинка фона была по центру? в HTML


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки 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. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru