Поиск:

Ответ в темуСоздание новой темы Создание опроса
> создание сетки из TButton, типа как в игре Сапёр 
V
    Опции темы
Sergio
Дата 2.10.2006, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

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



Здраствуйте. Я хочу сделать на форме массив 3 на 3. И чтобы он заполнился кнопками типу   TButton. Как ето сделать? 
Зарание спасибо.
PM MAIL ICQ   Вверх
Romikgy
Дата 2.10.2006, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



динамически  или накидать 9 кнопок


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Sergio
Дата 2.10.2006, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

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



Динамически

Я уже знаю как сделать динамически батон:
Цитата
TButton* Baton = new TButton(this); 
 Baton->Parent = this;
  Baton->Caption = "Button 1";


Но как запихнуть в масив и "пустить" по форме ??????
PM MAIL ICQ   Вверх
Romikgy
Дата 2.10.2006, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(Sergio @  2.10.2006,  21:31 Найти цитируемый пост)
TButton* Baton

создай не один указатель на 9
Цитата(Sergio @  2.10.2006,  21:31 Найти цитируемый пост)
Baton->Parent = this;

это имхо и будет на форме , только задай размеры и координаты слево и сверху


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Sergio
Дата 2.10.2006, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

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



ты не понял. Мне нужно Baton прикрепить к массиву, чтобы потом пользователь мог задавать размеры.
PM MAIL ICQ   Вверх
Romikgy
Дата 2.10.2006, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(Sergio @  2.10.2006,  21:50 Найти цитируемый пост)
мог задавать размеры.

чего массива?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Sergio
Дата 2.10.2006, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

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



потому что должна получиться сетка(Например 3*3)
Если есть альтернативный путь, напиши пожалуйста код. smile  smile 
PM MAIL ICQ   Вверх
Romikgy
Дата 2.10.2006, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Код

TButton* Baton[3][3];
for (int i=0;i<3;i++)
for (int j=0;j<3;j++)
 Baton[i][j]= new TButton(this); 

это инциализация массива а далее заполняй его


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Sergio
Дата 2.10.2006, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

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



Вот мои первые  "динамические шаги" Но уже где-то ошибка.Создается только одна кнопка. Почему? Вот код:
Цитата
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TButton* Masiv[3][3];

TButton* Baton = new TButton(this);
 Baton->Parent = this;

for (int i=0;i<3;i++)
{
 for (int j=0;j<3;j++)
 {
 Masiv[i][j] = Baton;
 }
}

}

PM MAIL ICQ   Вверх
Romikgy
Дата 2.10.2006, 23:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



ты работал раньше с указателями?
это работать не будет потому как у тя всего 1 кнопка на 9 ссылок, а вообще укажи ошибку
Цитата(Sergio @  2.10.2006,  22:51 Найти цитируемый пост)
Но уже где-то ошибка.

 smile 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Sergio
Дата 3.10.2006, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

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



Нет, не роботал я с указателями. Но подскажи пожалуйста как это сделать smile    smile 

Я хочу чтобы потом я разные индексы массива вводил и получались разные "поля" с Батонов.

Это сообщение отредактировал(а) Sergio - 3.10.2006, 00:12
PM MAIL ICQ   Вверх
stmamont
Дата 3.10.2006, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Сделай как Romikgy сказал и все заработает.
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
TButton* Baton[3][3];
for (int i=0;i<3;i++)
for (int j=0;j<3;j++)
 Baton[i][j]= new TButton(this); 
}

и все!


--------------------
user posted image
PM MAIL ICQ   Вверх
Sergio
Дата 3.10.2006, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

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



Я вставил код но  я ничего не вижу.... Почему? Возможно надо присоединить кнопки к форме...

Это сообщение отредактировал(а) Sergio - 3.10.2006, 12:18
PM MAIL ICQ   Вверх
Romikgy
Дата 3.10.2006, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Sergio, почитай про указатели и про  vcl в билдере( это дружеский совет)

Цитата(Sergio @  3.10.2006,  10:37 Найти цитируемый пост)
Возможно надо присоединить кнопки к форме...

да , как я написал раньше
Цитата(Romikgy @  2.10.2006,  22:01 Найти цитируемый пост)
это инциализация массива а далее заполняй его 

это начало кода, а далее тебе надо каждый объект заполнить и привязать к форме, так что сначало почитай про это , а то будет трудно те объяснить как это делать 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Sergio
Дата 3.10.2006, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

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



Народ вас очень прошу помогите с кодом.  smile 
Цитата
void __fastcall TForm1::Button1Click(TObject *Sender)
    
{
    
TButton* Baton[3][3];
    
for (int i=0;i<3;i++)
    
for (int j=0;j<3;j++)
    
 Baton[i][j]= new TButton(this); 
    
}

Должно получиться сетка из кнопок Спасибо.
PM MAIL ICQ   Вверх
Romikgy
Дата 3.10.2006, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Sergio, 
1. 
Цитата(Sergio @  3.10.2006,  21:53 Найти цитируемый пост)
прошу помогите с кодом

тогда в центр помощи
2. имхо те проще будет накидать 9 кнопок на форму и не заморачиватся с остальным


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Sergio
Дата 7.10.2006, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

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



Romikgy, я знаю что так проще, но я хочу для себя научиться. 

Это сообщение отредактировал(а) Sergio - 7.10.2006, 23:35
PM MAIL ICQ   Вверх
Sergio
Дата 8.10.2006, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 843
Регистрация: 28.7.2006
Где: Solar System-> Earth

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



Спасибо всем. Вопрос решён. Вот код:

Код
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrmMain *frmMain;
TButton* Buttons[3][3]; 
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnCreateButtonsClick(TObject *Sender)
{
  for(int i=0;i<Edit1->Text;i++)
    for(int j=0;j<Edit2->Text;j++)
    {
      Buttons[i][j]=new TButton(frmMain);
      Buttons[i][j]->Parent=frmMain;
      Buttons[i][j]->Width=25;
      Buttons[i][j]->Height=25;
      Buttons[i][j]->Left=i*Buttons[i][j]->Width;
      Buttons[i][j]->Top=j*Buttons[i][j]->Height;
      Buttons[i][j]->Caption=IntToStr(i*3+j);

    }
 
}

PM MAIL ICQ   Вверх
Romikgy
Дата 8.10.2006, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Вишь когда голова подключается все выходит smile


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
elCreator
Дата 31.8.2007, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



если я правильно понял, намечаются крестики-нолики)
лучше реализовать такое на Canvas какого-нибудь Image - заодно и кнопки получатся красивые - такие, какими ты их нарисуешь - а отлавливать клики по ним можешь по onMouseUp - 
координата_X/размер_клетки+3*координата_Y/размер_клетки=№_твоей_кнопки
PM WWW ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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