Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: C++ Builder 5-6 вопросы  (Прочитано 10292 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Serg76
Гость
« : 24-02-2007 20:11 » 

Столкнулся с такими задачами:
1. Можно ли собрать в цикле собрать имя компонента?
   В байте проверяются биты, на каждый бит прикреплён объект например Label, и в зависимости от их состояния меняется цвет метки.
2. Можно написать одну подпрограмму для нескольких форм?
   Подпрограмма рисует линию на Form, если она вызывается с формы 1 то рисуется на форме 1, если с формы 2 то на форме2, и т.д.

Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 24-02-2007 20:40 » 

2. Почему и нет? Через указатель на форму или соотв. компонент.

1. Подробнее, пожалуйста.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Serg76
Гость
« Ответ #2 : 24-02-2007 20:53 » 

слабо разбираюсь в builder
2. не понял про "указатель на форму"
   на каждой форме обработчик нажатой кнопки
1. в цикле проверяются биты в байте
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 24-02-2007 20:59 » 

Дело не в Builder - это же С++.

Пример:
Код: (C++)
void func(TForm * form)
{
  form->Caption = "hgjhgjhghgjhgj";
}

Точно также можно работать с любыми объектами.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Serg76
Гость
« Ответ #4 : 24-02-2007 21:31 » 

пример я понял
а можно такой опрос сделать в цикле

void func(TForm * form)
{
  form->Caption = "hgjhgjhghgjhgj";
}

....
for(int i=0;i<8;i++)
{
  func(form[ i ]);//не знаю как написать
}
« Последнее редактирование: 15-02-2008 12:53 от Вад » Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 24-02-2007 21:52 » 

Код: (C++)
class .....
{
TLable * Label1;
TLable * Label2;
TLable * Label3;
TLable * Label4;
};

В одном из членов:

TLabel * list[4] = {Label1, Label2, Label3, Label4};
int i;

for (i = 0; i < 4; i++)
    func(list[i]);
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Serg76
Гость
« Ответ #6 : 18-05-2007 10:07 » 

на второй вопрос:
Код:
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
void lne(TForm *frm);


//---------------------------------------------------------------------------
void lne(TForm *frm)
{
  frm->Canvas->MoveTo(10,10);
  frm->Canvas->LineTo(100,100);
}


//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  lne(Form1);
}
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines