|
|
|
| Здравствуйте.
У меня есть вот такой код (цикл):
InNumCounter = 0;
while (InNumCounter < InNum-1)
{
SplitStr = test[InNumCounter].Split(new Char[] { '_' });
listBox1.Items.Insert(0, SplitStr[1]);
InNumCounter++;
}
|
При проходе цикла в listBox1 вставляется указанный элемент массива, далее цикл проходит ещё несколько раз и и в этот listBox1 вставляется ещё несколько значений.
Суть в том, что нужно как-то вместе с увеличением InNumCounter увеличивалась и число рядом с listBox. Т.е. нужно сделать так:
1-й проход цикла:
InNumCounter = 0;
while (InNumCounter < InNum-1)
{
SplitStr = test[InNumCounter].Split(new Char[] { '_' });
listBox1.Items.Insert(0, SplitStr[1]);
InNumCounter++;
}
|
2-й проход цикла:
InNumCounter = 0;
while (InNumCounter < InNum-1)
{
SplitStr = test[InNumCounter].Split(new Char[] { '_' });
listBox2.Items.Insert(0, SplitStr[1]);
InNumCounter++;
}
|
3-й проход цикла:
InNumCounter = 0;
while (InNumCounter < InNum-1)
{
SplitStr = test[InNumCounter].Split(new Char[] { '_' });
listBox3.Items.Insert(0, SplitStr[1]);
InNumCounter++;
}
|
Надеюсь такое реализовать можно... | |
|
|
|
|
|
|
|
для: EvgenLog
(22.02.2007 в 17:00)
| | Я думаю, надо создать массив листбоксов, иначе никак. | |
|
|
|
|
|
|
|
для: alex19921992
(22.02.2007 в 17:09)
| | А это как делается? Примерно...
string [] listBox = new что-то тут...???
|
| |
|
|
|
|
|
|
|
для: EvgenLog
(22.02.2007 в 17:12)
| | Массив наверно делается так:
<имя класса> listbox[5];
вот у вас 5 листбоксов. Тока надо узнать имя класса наверное. | |
|
|
|
|
|
|
|
для: EvgenLog
(22.02.2007 в 17:00)
| | Можно так:
InNumCounter = 0;
while (InNumCounter < InNum-1)
{
SplitStr = test[InNumCounter].Split(new Char[] { '_' });
listBox[InNumCounter].Items.Insert(0, SplitStr[1]);
InNumCounter++;
}
если есть массив листбоксов. | |
|
|
|
|
|
|
|
для: alex19921992
(22.02.2007 в 17:18)
| | Если есть... Вот только он у меня не получается. Всё красным подчёркивается. | |
|
|
|
|
|
|
|
для: EvgenLog
(22.02.2007 в 17:24)
| | Всё, разобрался.
Массив из listBox'ов в Visual C создаётся так:
ListBox[] listbox = new ListBox[] { listBox1, listBox2, listBox3 };
|
listBox1, listBox2 и listBox3 должны быть размещены на форме, перед созданием массива.
Спасибо за помощь, alex19921992! | |
|
|
|
|
|
|
|
для: EvgenLog
(22.02.2007 в 17:31)
| | И всётаки, хотелось бы ещё узнать...
А как создавать массив из объектов, если их нет на форме. т. например, мне нужно сделать так:
Цикл проходит первый раз - создаётся объект на форме, с соответсвующими параметрами.
Цикл проходит фторой раз - создаётся ещё один объект, с соответсвующими параметрами.
Было бы достаточно привести пример, в котором на форме создавались бы несколько надписей одна под другой.
Спасибо. | |
|
|
|
|
|
|
|
для: EvgenLog
(25.02.2007 в 14:57)
| | Постараюсь сегодня вечером предоставить пример. | |
|
|
|
|
|
|
|
для: cheops
(25.02.2007 в 16:14)
| | Спасибо, буду ждать. | |
|
|
|
|
|
|
|
для: cheops
(25.02.2007 в 16:14)
| | Можно ещё за одно подсказать, как отследить клик по выведенной динамически надписи. | |
|
|
|
|
|
|
|
для: EvgenLog
(25.02.2007 в 20:20)
| | Ответа так и не последовало. | |
|
|
|
|
|
|
|
для: EvgenLog
(25.02.2007 в 20:20)
| | Вообще гоовря следует объявить массив элементов управления
Для удобства можно ввести новый тип
Выделить под объекты память
lbl = new TLabelP[4];
for(int i = 0; i < 4; i++)
{
lbl[i] = new TLabel(this);
lbl[i]->Caption = "Метка" + AnsiString(i);
lbl[i]->Top = (i + 1)*50;
lbl[i]->Left = 10;
lbl[i]->Height = 10;
lbl[i]->Width = 100;
lbl[i]->Visible = true;
} |
А при уничтожении формы удалить память
for(int i = 0; i < 4; i++) delete lbl[i];
delete [] lbl; |
| |
|
|
|
|
|
|
|
для: cheops
(26.02.2007 в 13:22)
| | А это ведь тоже на C++ пример? | |
|
|
|
|
|
|
|
для: EvgenLog
(26.02.2007 в 16:13)
| | >А это ведь тоже на C++ пример?
Хм... ну, да, тут все примеры на C++ :))) | |
|
|
|