![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
использование TListBox и TEdit [D6, WinXP]
SergeiX © (2005-06-01 12:28:00)Решаю задачу:"Создать Приложение, содержащее компоненты TEdit и TListBox и работающее следующим образом. При двойном нажатии на TEdit происходит добавление текста из строки TEdit в список TListBox при условии отсутствия такой строки в списке. Если такая строка уже есть в списке, она сначала удаляется из списка, а затем добавляется в него из строки TEdit."
Проблема в удалении из сприска TListBox элемента совпадающего с TEdit.
Начало у меня такое:
procedure TForm1.dobavka(Sender: TObject);
var i:integer;
n:integer;
s:string;
begin
{ListBox1.Items.Add(Edit1.Text);}
n:=-1;
for i:=0 to ListBox1.Count-1 do
begin
s:=ListBox1.Items[i];
if s=Edit1.Text then
begin
n:=i;
{ListBox1.Items.Clear; }
{delete (ListBox1.Items[i]);}
{ListBox1.DeleteSelected;}
end;;
end;
ListBox1.Items.Add(Edit1.Text);
end;
SergeiX (2005-06-01 13:59:00) [1]msguns Спасибокогда я все потер кроме твоей одной строки все
пошло. Классно. контрольная решена. А еще вопрос если не трудно я так понимаю сдесь отключалась индексация а я пробовал при включеной вобщем помоему способу выхода небыло наверно? Но ладно в принципе это уже не важно . А еще где мне можно найти добрую помощь руссифицированную к 7 delphi?
SergeiX (2005-06-01 13:34:00) [2]msguns спасибо конечно но твоим способом в списке ListBox1 всеравно появляются одинаковые элементы чего нельзя по условию например:
edit1
edit2
edit3
edit2
такого не должно быть. Мож я что не так желаю . Мне эту контрольную завтра сдавать. И голова уже плохо соображает :)
msguns (2005-06-01 13:04:00) [3]А так вааще в одну:
with ListBox1.Items,Edit1 do begin Delete(IndexOf(Text)); Add(Text); end;
;)
Это чего, лаба такая ?
msguns (2005-06-01 13:02:00) [4]Вместо всей лабуды 2 строки:
with ListBox1.Items do begin
Delete(IndexOf(Edit1.Text));
Add(Edit1.Text);
end;
SergeiX (2005-06-01 12:52:00) [5]Теперь работает до того момента пока повторяешь последний элемент
,а если повторить предпоследний то выдает ошибку встроке выделенной жырным. Я не очень разбираюсь что-то про индексацию?
begin
s:=ListBox1.Items[i];
if s=Edit1.Text then
begin
n:=i;
{ListBox1.Items.Clear; }
{delete (ListBox1.Items[i]);}
{ListBox1.DeleteSelected;}
ListBox1.Items.Delete(ListBox1.Items.IndexOf(Edit1.Text));
end;;
end;
Kerk (2005-06-01 12:30:00) [6]ListBox.Items.Delete(ListBox.Items.IndexOf(Edit1.Text));