Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Небольшой вопросик по поводу BuilderА... Чтобы до конца разобраться с объектами 
:(
    Опции темы
np9mi7
Дата 17.8.2003, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: 5
Всего: 10



#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TButton *Button1;
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Я не понимаю - это класс и TButton тоже класс, так почему бы не сделать массив этих TButtonОВ,
например так TButton *Button1[10]confused.gif


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
mr.DUDA
Дата 17.8.2003, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



А слова "IDE Managed components" тебе ни о чем не говорят ?
Можешь делать хоть массив, хоть список, но вызывать Create для каждой кнопки будешь самостоятельно.


--------------------
user posted image
PM MAIL WWW   Вверх
np9mi7
Дата 17.8.2003, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 553
Регистрация: 17.8.2003
Где: Volgograd, Russia

Репутация: 5
Всего: 10



Ты мне лучше расскажи как этот Create вызывать, просто перетаскивать что ли в формуconfused.gif


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
mr.DUDA
Дата 17.8.2003, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



не знаю, как в билдере, в MFC для создания любого "оконного" объекта библиотеки мало просто определить его как объект; перед использованием (например, в конструкторе твоей формы) необходимо вызвать метод "Create" данного объекта. Получится что-то вроде
Код

class TForm1 : public TForm
{
public:
    TButton Buttons[10];
    // ...
};

//  ...

TForm1::TForm1(TComponent* Owner)
{
    // ...
    for(int i=0; i < 10; i++)
          Buttons[i].Create( /*... параметры, специфичные для билдера ...*/ );
    // ...
}

Обычно параметрами служат:
- указатель или HWND родительского окна (это будет твоя форма)
- прямоугольник создаваемого объекта в координатах род. окна
- набор атрибутов (объединяемых по "|"), определяющих свойства объекта
- идентификатор (ID_...), по которому форма сможет определить, какой из
ее дочерних объектов послал то или иное сообщение (хотя в билдере
может и не быть никаких ID'ов -- как в Делфях)
- ... (и др.)

Это сообщение отредактировал(а) mr.DUDA - 17.8.2003, 17:04


--------------------
user posted image
PM MAIL WWW   Вверх
kruchinin
Дата 17.8.2003, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 19.4.2003

Репутация: нет
Всего: нет



По моему это делается так:
Код

Button1 = new TButton;

а остальные параметры меняешь после создания

PM MAIL   Вверх
mr.DUDA
Дата 17.8.2003, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



kruchinin, в виндах конструкторы кнопок, списков и т.д. окон не инициализируют (не создают) сами кнопки и списки -- нужно обязательно вызвать что-то с CreateWindow() внутри (о чём я и говорю).

Если просто создать "new TButton", а потом сразу лезть в свойства, получишь ошибку, т.к. объект Button не присоединен к виндошному объекту "кнопка".


--------------------
user posted image
PM MAIL WWW   Вверх
SCHEPA
Дата 17.8.2003, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 7.6.2003
Где: Н.Н.

Репутация: нет
Всего: нет



Делаешь именно

but=new TButton(this);
but->Parent=Form1; <- это та форма на которую помещаешь кнопочку.
Далее начинаешь устанавливать остальные свойства...
--------------------
Так что в лучших книгах всегда нет имен...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1883 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.