Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > MS Access+ListView+ListBox


Автор: HoneyDate 28.1.2012, 19:23
Добрый вечер.
Опишу проблему.
У меня есть фаил с базой MS Access в которой есть всего 2 поля:
1) ID-Счетчик
2) name-текстовое поле
На форме у меня имеетса ListView  который заполнен данными
Также на форме у меня есть ListBox

Задача такова:

Нужно провести поиск в ListView используя данные из Базы а именно поля Name и если найдено частичное совпадение добавляем это совпадение из ListView  в ListBox из ListView необходимо только столбик с названием

Я побовала считать данные из Базы в перменную TStringList и потом сверять с ListView

Также я нашла вот это в интернете но ничего не получаетса (((
Код

procedure FindItem(ListView: TListView; // где искать
                   const TextToFind: String; // что искать
                   StartWithItem: Integer = -1 // начиная с какого итема искать, по умолчанию с начала
                  );
var
  FintInfoStruct: TLVFindInfo;
begin
  with FintInfoStruct do
  begin
    flags := LVFI_PARTIAL; // ищем по началу заголовков итемов
    psz := PChar(TextToFind);
  end;
  ListView.Perform(LVM_FINDITEM, StartWithItem, LongInt(@FintInfoStruct));
end;


Признаюсь я незнаю как проделать всё выше перечиленное ((

Я использую Delphi Xe2 как среду програмирования 

Автор: Данкинг 28.1.2012, 19:34
Что именно не получается: процедура не ищет, что ли?

Автор: HoneyDate 28.1.2012, 19:52
Да и процедура не хочет искать.
Я проста недавно взялась за програмирование, поэтому ещё не все понимаю.
Допустим я знаю как добавить данные в Базу но как сделать то что я описала выше понятия не имею ((

Автор: Данкинг 28.1.2012, 20:07
Цитата(HoneyDate @  28.1.2012,  20:52 Найти цитируемый пост)
Да и процедура не хочет искать.

Пример использования сей процедуры в реальном коде в студию. smile 
Цитата(HoneyDate @  28.1.2012,  20:52 Найти цитируемый пост)
Я проста недавно взялась за програмирование, поэтому ещё не все понимаю.

И сразу с БД начинаешь?

Автор: HoneyDate 28.1.2012, 20:27
Код

var 
  lvItem: TListItem; 
begin 

  lvItem := FindItem(ListView1, Edit1.Text, 1); 

  if lvItem <> nil then 
  begin 
    ListView1.Selected := lvItem; 
    lvItem.MakeVisible(True); 
    ListView1.SetFocus; 
  end;

Ну я люблю сложности, вот только не всегда получаетса решить эти сложности.

Автор: HoneyDate 28.1.2012, 21:04
но я всёже не понимаю как мне даже спомощью этой функции сделать поиск в ListView использую данные из Базы данных

Автор: HoneyDate 29.1.2012, 15:35
Ребята помогите, очень прошу ((
Я пробовала несколько найденых функции поиска в ListView но не одна не работает (

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)