![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не удаляется значение из ListBox [D6, dBase, FoxPro]
denary © (2003-02-07 00:57:00)Не удаляется значение из ListBox (Delphi6, dbf)
Простая вроде бы задача: отмечен CheckBox - добавить значение в ListBox, неотмечен - удалить.
Делаю так:
procedure TForm1.CheckBox1Click(Sender: TObject);
var
i: Integer;
begin
i := 0;
if CheckBox1.Checked then
ListBox1.Items.Add("Лаборатория")
else
for i:=1 to ListBox1.Items.Count do begin
if ListBox1.Items.Text = "Лаборатория" then
ListBox1.Items.Delete(i);
Label1.Caption := Format("%s ",[ListBox1.Items.Text]); { заодно просмотреть все значения ListBox }
end;
end;
Не удаляется никак (сравнение не происходит). Что я делаю не так?
Господа мастера, помогите тупому ламеру!!
Способ ListBox1.Items.Delete(Table1.FieldByName("LABORATORY").Index);
не подходит, потому что позиция в ListBox может не совпадать с позицией в Table1.
ALex44 (2003-02-07 09:17:00) [1]
I := 0;
while I < ListBox1.Items.Count do
if ListBox1.Items[I] = "Лаборатория" then
ListBox1.Items.Delete(I)
else Inc(I);
Remark: Posle Delete Count izmenyaetsya
Leshiy (2003-02-07 08:56:00) [2]if CheckBox1.Checked then
ListBox1.Items.Add("Лаборатория")
else
ListBox1.Items.Delete(ListBox1.Items.IndexOf("Лаборатория"));
Alpine (2003-02-07 01:36:00) [3]if CheckBox1.Checked then
ListBox1.Items.Add("Лаборатория")
else
for i:=0 to ListBox1.Items.Count - 1 do begin
if ListBox1.Items.Strings[i] = "Лаборатория" then
ListBox1.Items.Delete(i);
Вот так вот ! Удачи ! И кстати i:=0 не обязательно !!!
Johnmen (2003-02-07 01:23:00) [4]1. for i:=0 to ListBox1.Items.Count-1
2. if ListBox1.Items[i]=...
3. Неплохо бы не лениться и читать хелпы...