CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?
Strona 1 z 1

Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Nowy postNapisane: wtorek, 22 maja 2018, 17:29
przez lukagrom
Dotychczas korzystam z metody ListBox->Items->Add(UnicodeString), a ona w przypadku wypisywania danych z pętli, każdą kolejną wartość wypsiuje w kolejnym wierszu. Chciałbym na przykład wypisać kolejne cyfry od 1 do 10 w jednym wierszu w odległości jednej spacji, czyli jak w C dla terminala/konsoli:
KOD cpp:     UKRYJ  
for(i=0;i<10;i++)
 {
  printf("%d ",i+1);
 }
 

Robiąc mniej więcej to samo tradycyjną metodą dla komponentu ListBox:
KOD cpp:     UKRYJ  
 for(i=0;i<10;i++)
  ListBox1->Items->Add(IntToStr(i+1));
 

kolejne cyfry, wypisują się w następnych linijkach. Czy ten komponent ma jakąs inną metodę, która pozwoli my wypisywać dane w jenym wierszu?

Re: Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Nowy postNapisane: środa, 23 maja 2018, 10:43
przez polymorphism
Użyj strumienia std::ostringstream, dodaj do niego wartości pooddzielane spacją i na koniec daj:
KOD cpp:     UKRYJ  
ListBox1->Items->Add(oss.str().c_str());

Re: Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Nowy postNapisane: środa, 23 maja 2018, 12:28
przez lukagrom
O to chodzilo, dzięki.
KOD cpp:     UKRYJ  
 std::ostringstream osstream;
 int i;
 for(i=0;i<10;i++)
  osstream<<i+1<<" ";
 ListBox1->Items->Add(osstream.str().c_str());

 

Re: Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Nowy postNapisane: środa, 23 maja 2018, 12:33
przez polymorphism
Dlaczego i definiujesz poza pętlą?

Re: Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Nowy postNapisane: środa, 23 maja 2018, 13:27
przez lukagrom
Takie przyzwyczajenie jeszcze z Turbo Pascala, gdzie wszystkie zmienne, były definiowane w jednej początkowej sekcji. Odnośnie ostringstream, dobrze, że można to tablicować, dzięki czemu można regulować tekst na różną ilość wierszy .

Re: Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Nowy postNapisane: środa, 23 maja 2018, 14:23
przez polymorphism
Chyba nie rozumiem, o co chodzi z tym tablicowaniem.

Re: Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Nowy postNapisane: środa, 23 maja 2018, 14:43
przez lukagrom
Idea, żeby wypluć "skopiowany" tekst nie w jednej linijce, a w kilku. Zresztą prosty, "autopromocyjny" przyklad, jak zawartość wypełnionego StringGrida o polach 10 *10, przetransportować do ListBoxa w tym samym formacie, a nie w jednej linijce jak powyżej : - https://l077.blogspot.com/

Re: Jak w ListBoxie w jednej linijce wyświetlić ciąg znaków?

Nowy postNapisane: środa, 23 maja 2018, 14:56
przez polymorphism
Ok, rozumiem.