usuwanie elementów z DBListBox

Problemy związane z tworzeniem i zarządzaniem programami bazo-danowymi.
Regulamin działu


Zadając pytania dotyczące baz danych należy podawać szczegółowe informacje o bazie danych nad którą się pracuje, czyli:

  • Rodzaj serwera bazodanowego: MySql, MSSQL, Oracle itp.
  • Wersja bazy danych
  • Technologia bazodanowa używana w programie: ADO, DbExpress, InterBase
  • Komponenty użyte do zestawienia połączenia: ADOConnection, SqlConnection
  • Sposób zestawienia komponentów bazodanowych np. DataSet - DataSource - DbGrid lub DataSet - DataSetProvider - ClientDataSet - DataSource - DbGrid
  • Jeżeli używane były biblioteki innych firm niż Borland, CodeGeer i Embarcadero proszę podać ich nazwy, numer wersji i adres źródła.

usuwanie elementów z DBListBox

Nowy postprzez P@bLO » czwartek, 7 stycznia 2010, 22:08

Witam

Tak więc:
Mam program w którym są wyświetlane tabele w DBGrid-ach
za pomocą TTable kopiuje (dodaje) elementy do 2-ch DBListBox
do jednego nazwę, a do drugiego wartość liczbową. Na DBListBox1 mam ustawione PopUpMenu za pomocą którego chcę usuwać zaznaczony element, ale także pobrać jego index i usunąć element o tym samym indeksie w DBListBox2

Próbowałem zrobić tak:
int a=DBListBox1->ItemIndex;
DBListBox1->DeleteSelected();
DBListBox2-> //i tu już nie bardzo wiem jak odwołać się do indeksu

ale to powyżej nie działa

Tak, żeby wszystkie usunąć już zrobiłem.
Z góry dziekuje wszystkim za pomoc.
Avatar użytkownika
P@bLO
Bladawiec
Bladawiec
 
Posty: 10
Dołączył(a): niedziela, 3 stycznia 2010, 00:31
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo C++
    NieznanyNieznana

Re: usuwanie elementów z DBListBox

Nowy postprzez Cyfrowy Baron » piątek, 8 stycznia 2010, 10:01

Spróbuj tak jak w ListBox:

Kod: Zaznacz cały
int a=DBListBox1->ItemIndex;
DBListBox1->Items->Delete(a);
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: usuwanie elementów z DBListBox

Nowy postprzez banita » piątek, 8 stycznia 2010, 12:38

dlaczego nie czytasz uwaznie poprzedniego watku ktory zalozyles?
kontrolki z przedrostkiem DB sluza do obslugi danych z bazy danych!
jesli masz dbgrid i kopiujesz z niego (jego datatsetu) dane do innej kontrolki to ta kontrolka nie powinna juz byc z przedrostkiem DB. czyli nie dblistbox a listbox.
Avatar użytkownika
banita
Kreacjusz
Kreacjusz
 
Posty: 283
Dołączył(a): poniedziałek, 28 lipca 2008, 20:07
Podziękował : 1
Otrzymał podziękowań: 18
System operacyjny: Windows 7 Professional
Kompilator: C++Builder 2010 Update 5,
Delphi 2010 Update 5,
NetBeans 6.9(MinGw + Qt),
Visual Studio 2008 + Qt
Gadu Gadu: 0
    NieznanyNieznana

Re: usuwanie elementów z DBListBox

Nowy postprzez P@bLO » sobota, 9 stycznia 2010, 04:46

no to się zamieszałem, poprawiłem wszystko na zwykłe ListBoxy

ale mam taki problem
Przed usunięciem elementu z ListBox1 pobieram jego indeks, następnie usuwam, ale nie bardzo mam pomysł za pomocą jakich poleceń usunąć element z ListBox2 o indeksie pobranym z ListBox1
Avatar użytkownika
P@bLO
Bladawiec
Bladawiec
 
Posty: 10
Dołączył(a): niedziela, 3 stycznia 2010, 00:31
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo C++
    NieznanyNieznana

Re: usuwanie elementów z DBListBox

Nowy postprzez Cyfrowy Baron » sobota, 9 stycznia 2010, 09:49

element z ListBox2 o indeksie pobranym z ListBox1


Ale chodzi o ten sam numer Indeksu, jeżeli tak to usuwasz tak samo, czyli:

Kod: Zaznacz cały
int a = ListBox1->ItemIndex;
ListBox1->Items->Delete(a);
ListBox2->Items->Delete(a);


Funkcja ItemIndex zwraca numer Indeksu, wiec jeżeli w obydwu listach chcesz usunąć indeks o tym samym numerze to wystarczy pobrać indeks z jednej listy, wszak zmienna int przechowuje tylko liczbę reprezentującą index a nie indeks listy.

ItemIndex zawsze zwraca numer zaznaczonego (wybranego na liście) indeksu, więc przed usunięciem należy sprawdzać, czy jakiś indeks jest zaznaczony na liście, w przeciwnym razie wyskoczy błąd:

Kod: Zaznacz cały
int a = ListBox1->ItemIndex;
if(a >= 0)
{
  ListBox1->Items->Delete(a);
  ListBox2->Items->Delete(a);
}


Jeżeli na liście nie zaznaczono żadnego elementu, to ItemIndex zawsze zwróci wartość -1 (minus 1).

Może poczytasz sobie o listach w serwisie Cyfrowy Baron w działa: porady -> ListBox; porady -> ComboBox; porady ->TStringList;
Wszystkie te listy są do siebie podobne i obsługuje się je niemal identycznie, za kilkoma wyjątkami
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4719
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: usuwanie elementów z DBListBox

Nowy postprzez P@bLO » sobota, 9 stycznia 2010, 13:32

ok dzieki wielkie.. takie proste a ja kombinowałem jakimiś "zakolami"
Avatar użytkownika
P@bLO
Bladawiec
Bladawiec
 
Posty: 10
Dołączył(a): niedziela, 3 stycznia 2010, 00:31
Podziękował : 3
Otrzymał podziękowań: 0
System operacyjny: Windows XP Pro SP2
Kompilator: Turbo C++
    Windows XPOpera


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Bazy danych

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 3 gości

cron