Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > ListBox - переход к следующей строке


Автор: TemeP 18.12.2007, 16:11
Вот, лежит у меня на форме элемент ListBox. Идет операция считывания текста из ListBox->Lines в, скажем, массив. Так вот, программа исправно читает первую строку, но автоматически не переходит на следующую строку. Как сделать переход программно? 
smile 
Заранее спасибо

Автор: PPS05 18.12.2007, 17:07
А как считываешь? Объясни подробней.

Автор: artsb 18.12.2007, 17:51
Вот:
Код

AnsiString *str=new AnsiString[ListBox1->Count];
for(int i=0; i<ListBox1->Count; i++)
{
str[i]= ListBox1->Items->Strings[i];
}

Автор: PPS05 18.12.2007, 18:00
Гм... вроде все нормально. Что значит 
Цитата

но автоматически не переходит на следующую строку
 ?

Автор: artsb 18.12.2007, 18:04
PPS05 я не TemeP.  smile 

Автор: PPS05 18.12.2007, 18:09
 smile 

Автор: XPyCT 14.7.2008, 10:29
Я выполнил вот так! чисто для теста

Код

#include <vcl.h>
#pragma hdrstop
#include <vector>


#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int cIndex,i;
i=ListBox1->Items->Count;
std::vector<AnsiString> master(i);
for(cIndex=0;  cIndex<i; cIndex++)
{
master[cIndex]=ListBox1->Items->Strings[cIndex];
ShowMessage(master[cIndex]);
}


}
//---------------------------------------------------------------------------


Добавлено через 8 минут и 48 секунд
Ваш пример тоже работает!

Код

//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString *str=new AnsiString[ListBox1->Count];


for(int i=0; i<ListBox1->Count; i++)
str[i]= ListBox1->Items->Strings[i];



for(int i=0; i<ListBox1->Count; i++)
Memo1->Lines->Add(str[i]);

}
//---------------------------------------------------------------------------

Автор: Mpak 17.7.2008, 16:12
Если вы хотите, что бы выделение переходило, то вставьте в цикл строку
Код

ListBox1->ItemIndex = i;

Автор: XPyCT 17.7.2008, 16:24
дык в цикле все и выполняется! или я не понял?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)