C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Динамические компаненты
xxxxxxx
Отправлено: 09.11.2005, 07:34


Не зарегистрирован







HI всем.
Решил пересесть с Delphi на Borland C++, и вдруг НЕОЖИДАННО для
себя обнаружил что я не могу создать динамически (во время выполнения) компанент
например TImage.
ВСЕ КОНСТРУКЦИИ ПЕРЕПРОБОВАЛ sad.gifsad.gifsad.gifsad.gifsad.gif
Помогите плиз.
Valdemar
Отправлено: 09.11.2005, 07:57


Мастер участка

Группа: Участник
Сообщений: 433



Видимо не все конструкции вы перепробовали. Все легко создается
CODE
   TImage * img = new TImage(Form1);
   img->Left=100;
   img->Top=100;
   img->Width=100;
   img->Height=100;
   img->ShowHint=true;
   img->Hint="image";
   img->Parent=Form1;

Чтобы Image был видим, в него надо загрузить изображение. В примере для подтверждения создания Image выводится Hint.

И надо пользоваться поиском, хорошо помагает.
xxxxxxx
Отправлено: 09.11.2005, 08:39


Не зарегистрирован







Нееееееееее я же написал, что все конструкции:
[CODE]

TImage* img = new TImage(Form1);
И
TImage* img = new TImage(this);

[CODE]

А он подлец пишет что не может найти TImage::TImage();
Пропускает только вот это:
[CODE]

TImage* img = (TImage*)(operator new(sizeof(TImage)));

[CODE]

Ноя если честно я хрен знает что это за конструкция.
Asher
Отправлено: 09.11.2005, 08:58


Мастер участка

Группа: Модератор
Сообщений: 550



Привет.
Хм, а заголовочные файлы подключать не пробовали?
Многим помогает.
CODE
#include <ExtCtrls.hpp>
xxxxxxx
Отправлено: 09.11.2005, 09:37


Не зарегистрирован







>>>Хм, а заголовочные файлы подключать не пробовали?
>>>Многим помогает.

Ну вот ещё один умник, конечно пробовал.

Для тебя специально привожу текст ошибки.

Could not find a match for 'TImage::TImage()'

То есть по руски значит, что он не может найти конструктор TImage(),
а не сам клас TImage.
AVC
Отправлено: 09.11.2005, 09:52


Ветеран

Группа: Модератор
Сообщений: 1583



Ну вот, еще один обиженный на С++ паскалист. smile.gif
Вам ведь пытаются помочь, можно бы и по-вежливее.

Для качественой помощи приложите не только код ошибки, а и весь проект ( если, конечно, он не слишком секретный).

Могу вас успокоить — все можно создавать динамически. И, обычно, ни каких трудностей при этом не возникает. Скорее всего у вас не та настройка проекта/системы.
Asher
Отправлено: 09.11.2005, 10:13


Мастер участка

Группа: Модератор
Сообщений: 550



QUOTE
То есть по руски значит, что он не может найти конструктор TImage(), а не сам клас TImage.

Угу. Я так понимаю класс сам по-себе, конструктор сам по-себе.
Где-то отдельно потерялся.
Valdemar
Отправлено: 09.11.2005, 10:32


Мастер участка

Группа: Участник
Сообщений: 433



xxxxxxx, вы бы еще и справку по TImage почитали бы, какой у него конструктор. Компилятор вам намекает, что конструктора без параметров у TImage нет:
QUOTE
Could not find a match for 'TImage::TImage()'
xxxxxxx
Отправлено: 09.11.2005, 11:46


Не зарегистрирован







Ну ещё раз Hi

>>>>Ну вот, еще один обиженный на С++ паскалист.

Ну зачем сразу обиженный да ещё и паскалист.
Если я с Delphi на Borland C++ хочу пересесть это ещё не значит что я с С++ плохо знаком.
В Visual Studio C++ например вся это бойда работает специально проверил.

>>>>Вам ведь пытаются помочь, можно бы и по-вежливее.

Ну как вы думаете я наверное ПОНИМАЮ какие файлы загаловка подключать чтобы
включить реализацию того или иного класса в приложение.
Это так отступление, Теперь собственно о ПОМОЩИ:
Я не прошу обьеснять мне реализацию динамического подключения классов в Borland C++
она стандартна для языка С++ в целом.
Я косвенно прошу помочь(в первом сообщении я же написал, что все конструкции попробовал)
мне с настройкой среды разработки(Borland C++).
А ОТВЕТ>>>Хм, а заголовочные файлы подключать не пробовали?<<< ЭТО НЕ ПОМОЩЬ А ИЗДЕВАТЕЛЬСТВО.

>>>>Угу. Я так понимаю класс сам по-себе, конструктор сам по-себе.
>>>>Где-то отдельно потерялся.

Я надеюсь ты пошутил:)smile.gifsmile.gif

>>>>xxxxxxx, вы бы еще и справку по TImage почитали бы, какой у него конструктор. Компилятор вам намекает, что
>>>>конструктора без параметров у TImage нет:

Для особо внимательных во втором своём сообщении я написал.

TImage* img = new TImage(Form1);
И
TImage* img = new TImage(this);

По твоему Form1 это не пораметр.

P.S. Ну я всётаки создал этот TImage динамически( TImage* img = new TImage(this); ) просто комп перезагрузил.smile.gifsmile.gifsmile.gifsmile.gifsmile.gif


Asher
Отправлено: 09.11.2005, 12:01


Мастер участка

Группа: Модератор
Сообщений: 550



QUOTE
Я надеюсь ты пошутил:)

Да какие тут шутки. sad.gif
Первые ответы на Ваш вопрос — это наиболее часто встречающиеся ошибки.
Что Вы лично подразумеваете под
QUOTE
ВСЕ КОНСТРУКЦИИ ПЕРЕПРОБОВАЛ
я например не знаю. Телепатией не обладаю.
В таких условиях, зачастую, простые советы являются вполне достаточными и , в какой-то мере, уточняющими, раз уж Вы сами предметную область не сузили.

Взято с другого форума:
QUOTE
Вопрос: У меня ничего не работает. Почему?
Ответ: Все нормально. Так и должно быть. Попробуйте сформулировать вопрос кокретней, может тогда появится ответ.
Правильно заданый вопрос — половина ответа.


P.S. Интересно, как бы Вы отреагировали на совет перегрузить компьютер? cool.gif

Отредактировано Asher — 09/11/2005, 13:05
xxxxxxx
Отправлено: 09.11.2005, 12:22


Не зарегистрирован







Не буду врать я бы ВОЗМУТИЛСЯ:)smile.gifsmile.gif.
Но рано или позно я бы его reboot'нул И ПОСЛЕДОВАЛО БЫ ГЛУБОКОЕ РАСКАЯНИЕ:(.
Gedeon
Отправлено: 09.11.2005, 13:37


Ветеран

Группа: Модератор
Сообщений: 1742



Мля, нет слов, это не
QUOTE

Ну вот, еще один обиженный на С++ паскалист.
это воообще не понятно кто, у меня коллега, так вот он на дэлфи пишет, не балуйся, понадобились человеку комплексные числа, взял std::complex единственный вопрос на к-рый я ответил using namespace std; дальше он просто читал документацию. ВСЕ! а вот если не дано то не дано.
Grigoriy
Отправлено: 09.11.2005, 19:16


Мастер участка

Группа: Участник
Сообщений: 381



QUOTE (xxxxxxx @ 09/11/2005, 11:46)
просто комп перезагрузил.smile.gifsmile.gifsmile.gifsmile.gifsmile.gif

Что, надо было ОС перезагружать ?
Георгий
Отправлено: 09.11.2005, 23:14


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



во флейм

Вернуться в Вопросы программирования в C++Builder