Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

listbox

0 views
Skip to first unread message

Marek Sleszynski

unread,
Apr 1, 2001, 4:10:31 PM4/1/01
to
Witam!

Staram sie usuwac tekst z listboxa o tak:

var
wybra: integer;
begin
for wybra := 0 to (listbox1.items.count -1) do
begin
if listbox1.Selected[wybra] then
listbox1.Items.Delete(wybra);
end;

Ale kiedy klikam probuje usunac, wyskakuje mi komunikat "List Index out of
bounds".
Dodam jeszcze, ze tekst jest ladowany z pliku funkcja
listbox1.items.loadfromfile, jesli to cos pomoze.
Co robie zle?

Dziekuje za wszelka pomoc


Marek


Plonk

unread,
Apr 1, 2001, 5:00:33 PM4/1/01
to
"Marek Sleszynski" <mar...@lion.cc-nospam->
 
Staram sie usuwac tekst z listboxa o tak:

var
wybra: integer;
begin
for wybra := 0 to (listbox1.items.count -1) do
begin
if listbox1.Selected[wybra] then
listbox1.Items.Delete(wybra);
end;

Ale kiedy klikam probuje usunac, wyskakuje mi komunikat "List Index out of bounds".
...
Co robie zle?
Usuwasz elementy, do których potem próbujesz odwołać się. Użyj while.

Marcin Lewandowski

unread,
Apr 1, 2001, 5:04:09 PM4/1/01
to
----- Original Message -----
From: "Marek Sleszynski" <mar...@lion.cc-nospam->
To: <pl-comp-l...@newsgate.pl>
Sent: Sunday, April 01, 2001 10:10 PM
Subject: listbox


> Witam!
>
> Staram sie usuwac tekst z listboxa o tak:
>
> var
> wybra: integer;
> begin
> for wybra := 0 to (listbox1.items.count -1) do
> begin
> if listbox1.Selected[wybra] then
> listbox1.Items.Delete(wybra);
> end;

Nie bardzo rozumiem po co tak mieszać.
Nie lepiej:

ListBox1.Items.Delete(ListBox1.ItemIndex);

???

$ Marcin Lewandowski
$ mbi...@poczta.onet.pl
$ Nie mieć złudzeń jest rzeczą godną szacunku - i bezpieczną
$ - i korzystną - i nudną. (J. Conrad)


--

--
Archiwum grupy: http://niusy.onet.pl/pl.comp.lang.delphi

WoiTEC

unread,
Apr 1, 2001, 5:31:26 PM4/1/01
to

Użytkownik "Marek Sleszynski" <mar...@lion.cc-nospam-> napisał w wiadomości
news:9a83ph$ekc$2...@rohrpostix.uta4you.at...
[..]

| var
| wybra: integer;
| begin
| for wybra := 0 to (listbox1.items.count -1) do
| begin
| if listbox1.Selected[wybra] then
| listbox1.Items.Delete(wybra);
| end;
|
| Ale kiedy klikam probuje usunac, wyskakuje mi komunikat "List Index out of
| bounds".

A gdyby tak ...

for wybra := ListBox.Items.Count - 1 downto 0
{reszta bez zmian}
????


--
Pozdrowienia dla wszystkich
Wojtek [ woi...@poczta.onet.pl ]

Jacek Korzewski

unread,
Apr 4, 2001, 4:52:47 AM4/4/01
to
Użytkownik Marek Sleszynski <mar...@lion.cc-nospam-> w wiadomości do grup
dyskusyjnych napisał:9a83ph$ekc$2...@rohrpostix.uta4you.at...
: Witam!

:
: Staram sie usuwac tekst z listboxa o tak:
:
: var
: wybra: integer;
: begin
: for wybra := 0 to (listbox1.items.count -1) do
: begin
: if listbox1.Selected[wybra] then
: listbox1.Items.Delete(wybra);
: end;
:

Oczywiscie, ze zle.
Zalozmy, ze listbox.items.count przy wejsciu w petle for wynosi 100
wiec petla wykona sie 100 razy (dla 100 elementow).
ale po usunieciu jednego tych elementow jest juz 99 itd.
a ilosc wykonania w petli for nie zmienia sie dynamicznie w przeciwienstwie
do ilosci itemow w listboxie ;)))

wiec trzeba


wybra:=listbox.selection.top;
while listbox.selected[wybra] do
listbox.delete(wybra);


Pozdrawiam
Jacek Korzewski


0 new messages