Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.06.29;
Скачать: CL | DM;

Вниз

использование TListBox и TEdit   Найти похожие ветки 

 
SergeiX   (2005-06-01 12:28) [0]

Решаю задачу:"Создать Приложение,  содержащее компоненты 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;


 
Kerk ©   (2005-06-01 12:30) [1]

ListBox.Items.Delete(ListBox.Items.IndexOf(Edit1.Text));


 
SergeiX   (2005-06-01 12:52) [2]

Теперь работает до того момента пока повторяешь последний элемент
,а если повторить предпоследний то выдает ошибку встроке выделенной жырным. Я не очень разбираюсь что-то про индексацию?
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;


 
msguns ©   (2005-06-01 13:02) [3]

Вместо всей лабуды 2 строки:
with ListBox1.Items do begin
  Delete(IndexOf(Edit1.Text));
  Add(Edit1.Text);
 end;


 
msguns ©   (2005-06-01 13:04) [4]

А так вааще в одну:

with ListBox1.Items,Edit1 do begin Delete(IndexOf(Text)); Add(Text); end;

;)

Это чего, лаба такая ?


 
SergeiX   (2005-06-01 13:34) [5]

msguns спасибо конечно но твоим способом в списке ListBox1 всеравно появляются одинаковые элементы чего нельзя по условию например:
edit1
edit2
edit3
edit2
такого не должно быть. Мож я что не так желаю . Мне эту контрольную завтра сдавать. И голова уже плохо соображает :)


 
SergeiX   (2005-06-01 13:59) [6]

msguns Спасибо когда я все потер кроме твоей одной строки все
пошло. Классно. контрольная решена. А еще вопрос если не трудно я так понимаю сдесь отключалась индексация а я пробовал при включеной  вобщем помоему способу выхода небыло наверно? Но ладно в принципе это уже не важно . А еще где мне можно найти добрую помощь руссифицированную к 7 delphi?



Страницы: 1 вся ветка

Текущий архив: 2005.06.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.144 c
1-1117802947
smesh
2005-06-03 16:49
2005.06.29
Полная поддержка Юникод


3-1116318471
jiny
2005-05-17 12:27
2005.06.29
Как возвращать из запроса sum(kol) не null, а 0


1-1118263862
Кирилл Гумилев
2005-06-09 00:51
2005.06.29
Удаление Excel-столбца


4-1114937615
Dozer
2005-05-01 12:53
2005.06.29
Драйвер сетевой карты на Delphi


3-1116402505
SLP
2005-05-18 11:48
2005.06.29
копирование результатов запроса в буфер обмена