реклама на сайте
подробности

 
 
> как создать массив label в С++ builder
123kill12
сообщение May 28 2011, 18:13
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 96
Регистрация: 12-05-10
Пользователь №: 57 217



нужно расположить на форме(Form2) 100 label. я утрирую задачу чтоб не описывать. как создать массив label'ов. все что нашел в инете либо не работает либо выдает ошибки.
причем label нужно создавать по верх всех других элементов.

нашел наконец рабочий код.
TLabel* l=new TLabel(Form1);
l->Caption="label";
l->Parent=Form2;
l->Name="Label" + IntToStr(i);
l->Top=10;
l->Left=i*40;

но они появляются при создании и сразу уходят на задний план.
l->BringToFront(); не помогает.

с расположением поверх всех решил проблему. но удаляться не хотят(((
делаю так.
delete((TLabel*)FindComponent("Label"));
не работает((

скорее всего это связано с тем что я переприсвоил родителя для того чтоб он был по верх других.
for(int i=0; i<HH_count;i++)
{
TLabel* l=new TLabel(Form1);
l->Caption="T:="+FloatToStr(i);
l->Parent=Chart1;
l->Name="Label" + IntToStr(i);
l->Transparent=true;
l->Font->Size=10;
l->Font->Color=clGreen;
l->Top=10;
l->Left=40*i;
l->BringToFront();
}

Сообщение отредактировал 123kill12 - May 28 2011, 18:17
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
123kill12
сообщение May 28 2011, 22:32
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 96
Регистрация: 12-05-10
Пользователь №: 57 217



задача сводится к пересечению графиков. а их может быть много. одна функция при построении ищет пересечения. а по нажатию кнопки они отображаются или исчезают. так что переменная HH_count не известна. вот и приходится выделять динамический массив.
Go to the top of the page
 
+Quote Post
Xenia
сообщение May 28 2011, 23:06
Сообщение #3


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(123kill12 @ May 29 2011, 02:32) *
задача сводится к пересечению графиков. а их может быть много. одна функция при построении ищет пересечения. а по нажатию кнопки они отображаются или исчезают. так что переменная HH_count не известна. вот и приходится выделять динамический массив.

Если HH_count не константа, а переменная с заранее неизвестным значением, то массив указателей тоже можно быть выделен динамически. Вот так:
TLabel**pl = new TLabel[HH_count];
Только тогда по окончании использования его тоже придется удалить:
delete[] pl;
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016