Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

использование 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));


Наверх

Титульная страница Поиск, карта сайта Написать письмо