Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/120: Рейтинг темы: голосов - 120, средняя оценка - 4.86
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522

Поиск по ListBox

11.08.2010, 09:51. Показов 24193. Ответов 56
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здарова!
мне нужно произвести поиск по списку
следущий код это делает, но если ввести слово целиком. а мне нужно, чтобы темы в ListBox выделялись сразу при введениии уже первой буквы в Edit.
например если я ввел в Edit букву "а", то в ListBox выделялась тема которая начинается на букву "а" (и дальше по алфавиту (без учета регистра). алфавиты - рус и англ)

теперь код:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
procedure TForm1.Edit1Change(Sender: TObject);
var i: integer;
begin
Memo1.Clear;
if Length(Edit1.Text) <> 0 then
   for i:= 0 to ListBox1.Items.Count - 1 do
   if ListBox1.Items.Strings[i] = Edit1.Text then
   try
   AssignFile(f, ExtractFilePath(Application.ExeName) + 'а3\' + ListBox1.Items.Strings[i] + '.txt');
    {$I-}
    Reset(f);
    {$I+}
   if IOResult = 0 then  begin
     while not EOF(f) do
          begin
               readln(f, st);
               form1.memo1.Lines.Add(st);
           end;
         closefile(f);
    end;
  except
  exit;
 end;
end;
2
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.08.2010, 09:51
Ответы с готовыми решениями:

Удаление не выделенных строк в ListBox (Поиск в ListBox)
Добрый день! Друзья, подскажите, пожалуйста, как внутри ListBox организовать поиск по записям (фильтр), чтобы остались только валидные...

поиск+listbox
имеется массив слов. выполняю поиск в массиве по букве через Contains. результат (если имеется слово с такой буквой) выводиться в...

Поиск в ListBox
Добрый день. Необходимо сделать поиск в listbox при указании текста в edit. Необходимо чтобы, было следующего плана: начинаешь вписывать...

56
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
12.08.2010, 15:40
Студворк — интернет-сервис помощи студентам
Просмотрел проект как оказалось код в порядке дело было в имени каталога a3 тут видимо стояла русская буква а. Я заменил и в коде и в имени самой папки на английскую. Ну и еще кое что подправил теперь поиск работает нормально.
Вложения
Тип файла: rar Delphi.Helper.rar (301.7 Кб, 40 просмотров)
1
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
12.08.2010, 21:39  [ТС]
John_Pa9JIbHuK, КЛАСС!!! красава, спасибо огромное! Thanks! Граци! Баркала! Чухсагъул!
(больше языков не знаю ).

Добавлено через 1 час 48 минут
John_Pa9JIbHuK, а чтобы одинаковые имена элементов не было при создании, сможешь??
я попытался, у меня получается так: когда пытаюсь создать эл. с уже имеющимся названием выходит сообщение "такой эл. есть", а если создаю эл. с другим именем выскакивает ошибка.
0
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
12.08.2010, 22:57
Например чтобы не было два элемента авто? То есть если есть один то запрет на создание?

Добавлено через 31 минуту
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, ValEdit, StdCtrls, Buttons, ExtCtrls, Menus, ComCtrls,
  ImgList;
 
type
  TForm1 = class(TForm)
    Memo1: TMemo;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    Panel1: TPanel;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    SpeedButton7: TSpeedButton;
    ImageList1: TImageList;
    SpeedButton8: TSpeedButton;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TreeView1: TTreeView;
    StatusBar1: TStatusBar;
    SpeedButton10: TSpeedButton;
    Edit2: TEdit;
    SpeedButton1: TSpeedButton;
    Edit1: TEdit;
    Timer1: TTimer;
    ListBox1: TListBox;
    procedure SpeedButton7Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
 
    procedure TreeView1DblClick(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
 
    procedure SpeedButton10Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure ListBox1DblClick(Sender: TObject);
    procedure TreeView1Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure ListBox1Enter(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    //Ôóíêöèÿ ïðîâåðêè äóáëèêàòà ïðè ñîçäàíèè
    Function IsSingle(Tree: TTreeView; S: String): boolean;
....
....
....
....
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.SpeedButton3Click(Sender: TObject);
var
Str:String;
NewNode:TTreeNode;
i:Integer;
begin
  Str:='';
  if not InputQuery('Ââîä èìåíè', 'Ââåäèòå çàãîëîâîê ýëåìåíòà',Str) then exit;
  if IsSingle(treeview1,Str) then
    TreeView1.Items.Add(NewNode, Str) else
      Showmessage(Str + ' óæå áûë ñîçäàí ðàíåå');
 
end;
Вот исправь эти места
1
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
13.08.2010, 11:01  [ТС]
спасибо, дома посмотрю.

Добавлено через 16 минут
Цитата Сообщение от John_Pa9JIbHuK Посмотреть сообщение
Function IsSingle(Tree: TTreeView; S: String): boolean;
первый раз вижу ф-ю (не встроенную) без тела
так просто оказывается
0
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
13.08.2010, 14:58
))) Код функции то забыл выложить )))
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function TForm1.IsSingle(Tree: TTreeView; S: String): boolean;
var
  I:Integer;
begin
   Result := true;
   for i:= 0 to treeview1.Items.Count - 1 do
     begin
       if s = treeview1.Items[i].Text then
         begin
           Result := false;
           break;
         end;
     end;    
end;
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
13.08.2010, 19:47  [ТС]
John_Pa9JIbHuK, ошибка выходит, ни один эл. не создается
0
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
13.08.2010, 21:34
Love_and_Peace, Ну в таком случае замени свой пас файл на этот. А то что то у тебя не получается вставить кода без ошибок )))
Вложения
Тип файла: rar Unit1.rar (2.7 Кб, 14 просмотров)
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
13.08.2010, 23:12  [ТС]
неа, не получается.
у тя работает это??
знаешь, тут ошибка по моему не в коде, а не стыковке этих изменений.
вчерашний код тоже маросил, уменя на компе оставался проект, потом скачал обратно который ты передал, они похоже перкрывались и фатальная ошибка выдавалась (касалось в основном пути к файлам).
пришлось все удалять и сделать заново, щас все хорошо, кроме вот этой хрени (повторение имен)
ощибка примерно такая - access violation..... (нарушение доступа...) "Project 1"...

можно также оставить, но если в дереве будет сотни узлов, легко ошибиться
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
15.08.2010, 11:23  [ТС]
John_Pa9JIbHuK, привет, больше соображений на эту тему нет??
у меня не работает, хотя на вид все правильно.
у тя все работает?
0
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
15.08.2010, 11:36
Love_and_Peace, у меня все работает
Вложения
Тип файла: rar Delphi.Helper.rar (93.9 Кб, 15 просмотров)
0
Автор FAQ
Автор FAQ
 Аватар для REALIST07
644 / 199 / 21
Регистрация: 11.06.2010
Сообщений: 1,024
15.08.2010, 11:38
А может у вас версии делфи не совпадает?у меня часто такое случается
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
15.08.2010, 11:47  [ТС]
мистика О_о
теперь смотри сюда, попробуй здесь добавить свой код
Вложения
Тип файла: rar Помощник.rar (284.9 Кб, 29 просмотров)
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
15.08.2010, 11:53  [ТС]
REALIST07, у нас Del 7
чуствую, что дело в каталоге (или задания пути к нему)

Добавлено через 4 минуты
John_Pa9JIbHuK, а в твоем коде, элементы уже не реагируют на двойной шелчок
даа... невыносимая легкость бытия
0
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
15.08.2010, 11:57
Love_and_Peace, Проект который я те выложил проверил ? Робит?

Добавлено через 4 минуты
Love_and_Peace, Все дело в имени каталога. В коде программы измени все a3\ на английскую букву. Например вот в этом участке при двойном клике по листбоксу
Delphi
1
AssignFile(f, ExtractFilePath(Application.ExeName) + 'a3\' + ListBox1.Items.Strings[ListBox1.ItemIndex] + '.txt');
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
15.08.2010, 12:03  [ТС]
John_Pa9JIbHuK, поменял, посылают
чтобы не мучаться с этими буквами, я позавчера все удалил и заново создал прогу, с катлогом "файлы" (исходник наверху). все работает, кроме вопроса с именами
0
Добрый самаритянин
 Аватар для John_Pa9JIbHuK
1107 / 622 / 139
Регистрация: 31.03.2009
Сообщений: 2,567
15.08.2010, 12:41
Love_and_Peace, ща просмотрю
0
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
16.08.2010, 19:55  [ТС]
Цитата Сообщение от John_Pa9JIbHuK Посмотреть сообщение
Love_and_Peace, ща просмотрю
не посмотрел???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.08.2010, 19:55

Поиск в ListBox
Здравствуйте! Нужна помощь. Мне нужно реализовать поиск в listbox: Даже не знаю как написать в общем: У меня есть TextBox и...

Поиск в listbox
У меня есть listbox и там написаны имена. На какое-то событие нужно найти в listbox строку с именем и добавить к этой строке...

Поиск в ListBox
Всем привет! Я делаю поиск в LISTBOX по совпадению и вывожу совпадения в другой LISTBOX: string poisk1 = new string; ...

Поиск в Listbox
Здравствуйте! Как организовать поиск в listbox ? Например ввожу текст в textbox что бы искал-фильтровал в listbox'е?

Поиск в ListBox
Собственно такой вопрос... У мен я в ListBox ооооочень много значений. Поэтому нужен поиск по этим элементам. Сделать поиск по полному...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
57
Ответ Создать тему
Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru