Mariusz Staniszewski

Mariusz Staniszewski Student, PWSZ Gorzów

Temat: Turbo C++, Builder++(listbox)

Witam
zaczynam zabawę z Builderem (TurboC++), mam takie pytanko.
Mając dwie listbox chciałbym z jednego do drugiego przenosić zawartość za pomocą przycisków(BitBtn) np. tak
1 przycisk np > -przeniesienie jednego elementu z 1 listbox1 do listbox2
2 przycisk >> przeniesienie wszystkich elementów z 1 listbox1 do listbox2
i odwrotnie.
Mariusz
Jerzy M.

Jerzy M. C#/JavaScript
Developer

Temat: Turbo C++, Builder++(listbox)

jest bodajże coś takiego jak 'selected' jeśli chodzi o pojedyncze.

w przypadku wszystkich to pewno z pętelką i na końcu tylko clear.
Jarek Karciarz

Jarek Karciarz właściciel, OSITRON
Polska

Temat: Turbo C++, Builder++(listbox)

a coś takiego?
list2->Items->AddStrings(list1->Items)?
list1->Items->Clear()
jesli przeniesienie, bo gdy kopia, to clear niepotrzebne

To jesli wszystkie, bo jesli tylko wybrane, to rzeczywiscie bazując na selected.
Mariusz Staniszewski

Mariusz Staniszewski Student, PWSZ Gorzów

Temat: Turbo C++, Builder++(listbox)

Witam
Dzięki działa.
Tylko jeszcze mam mały kłopot, jak przez przypadek się rozpędzę i kliknę przenoszenie kiedy listBoxy są puste, to mi się trochę rozsypuje program. Czy można zablokować przyciski kiedy nie ma już co przenosić.
Mariusz
Jakub L.

Jakub L. Programista

Temat: Turbo C++, Builder++(listbox)

Można pewnie tak napisać program, że zauważy, że nie ma co przenosić i się nie wywróci.
Próbowałeś poczytać jakąś dokumentację do obiektów na których operujesz, albo chociaż listę ich metod i ewentualnie dostępnych pól?

konto usunięte

Temat: Turbo C++, Builder++(listbox)

Dla MultiSelect trzeba użyć właściwości SelCount i Selected:

http://delphi.about.com/od/delphitips2007/qt/listbox_d...

SelCount mówi czy coś jest wybrane.
Trzeba jeszcze obsłużyć event wybrania tak aby przycisk przenoszenia aktywował się (Enabled) tylko wtedy gdy SelCount > 0.

konto usunięte

Temat: Turbo C++, Builder++(listbox)

Oto kod dla przenoszenia zaznaczonych pozycji na Liscie 1 do Listy 2:
if(List1->ItemsIndex >= 0) {
List2->Items->Add(List1->Items->String[List1->ItemsIndex];
List1->Items->Delete(List1->ItemsIndex);
}

oraz z Listy 2 do Listy 1:
if(List2->ItemsIndex >= 0) {
List1->Items->Add(List2->Items->String[List2->ItemsIndex];
List2->Items->Delete(List2->ItemsIndex);
}
komentarz:
instrukcja nie włączy się jeżeli niezostanie wybrana żadna pozycja na liście (w przypadku nie wybrania pozycji na liście zmienna List1->ItemsIndex przyjmuje wartość -1)Mirosław Ślanda edytował(a) ten post dnia 19.01.10 o godzinie 12:17

Następna dyskusja:

Borland Developer Studio i ...




Wyślij zaproszenie do