![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Помогите написать кусочек программы. Есть ListBox в котором находятся номера автомобилей нужно при вводе в Edit чисел чтобы из ListBox пропадали те номера которые не совпадают и оставались только те которые совпадают 100%, поиск нужен по всему слову а не только с первой позиции (так как е первой позиции я знаю как сделать а мне нужен вхождение). И кода человек из оставшихся позиций выберет нужную в Label выводило данные номер авто который выбрали и его индекс. Пример привожу и его результа который должен получится в картинках!
|
|
#2
|
||||
|
||||
|
используй Pos()
|
|
#3
|
||||
|
||||
|
Код:
type
TForm2 = class(TForm)
ListBox1: TListBox;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure Edit1Change(Sender: TObject);
private
Backup: TStringList;
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Edit1Change(Sender: TObject);
var
i: Integer;
begin
ListBox1.Items.BeginUpdate;
ListBox1.Items.Assign(Backup);
if Edit1.Text <> ''
then for i := ListBox1.Count - 1 downto 0
do if Pos(AnsiUpperCase(Edit1.Text), AnsiUpperCase(ListBox1.Items.Strings[i])) = 0
then ListBox1.Items.Delete(i);
ListBox1.Items.EndUpdate;
end;
procedure TForm2.FormCreate(Sender: TObject);
const
Alpha: String = 'абвгдежзиклмнопрстуфхшэюя';
var
i: Integer;
begin
for i := 0 to 99
do ListBox1.Items.Add(Alpha[1+Random(25)] + IntToStr(1 + Random(999)) +
Alpha[1+Random(25)] + Alpha[1+Random(25)] + IntToStr(1 + Random(199)));
Backup := TStringList.Create;
Backup.Assign(ListBox1.Items);
end; |