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

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

15.01.2012, 13:48. Показов 2218. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru