IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Криво работает добавление..., в TListView
Beowulf 13th
сообщение 26.04.2007 16:41
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Есть список. List: TListView.

В него слямзенной функцией добавляем из нескольких полей текст. Добавляет очень криво. В Item он добавляет сначала пустую строку потом на следующей введенный текст, а в SubItem наоборот. Что делать не понятно О_О

Заранее спасибо.

Код

procedure TForm1.bbAddClick(Sender: TObject);
  var ListItem : TListItem;
begin
  ListItem := List.Items.Add;

  List.AddItem(edLastName.Text, pointer(edLastName.Text));
  ListItem.SubItems.Add(edName.Text);
  ListItem.SubItems.Add(edOtch.Text);
  ListItem.SubItems.Add(edPhone.Text);
  ListItem.SubItems.Add(edAddress.Text);
  ListItem.SubItems.Add(cbDate.Text + ' ' + cbMounth.Text + ' ' + edYear.Text);
  ListItem.SubItems.Add(edNotes.Text);
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Beowulf 13th
сообщение 14.05.2007 13:20
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


И еще вопрос. Слямзил функцию

Код

procedure LV_FindAndSelectItems(lv: TListView; const S: string; column: Integer);
var
  i: Integer;
  found: Boolean;
  lvItem: TListItem;
begin
  Assert(Assigned(lv));
  Assert((lv.ViewStyle = vsReport) or (column = 0));
  Assert(S <> '');
  for i := 0 to lv.Items.Count - 1 do
    begin
    lvItem := lv.Items[i];

    if column = 0 then
      found := AnsiCompareText(lvItem.Caption, S) = 0
    else
      if column > 0 then
        begin
          if lvItem.SubItems.Count >= Column then
            found := AnsiCompareText(lvItem.SubItems[column - 1], S) = 0
          else
            found := False;
          end
      else
        found := False;

      if found then
        begin
          lv.Selected := lvItem;
        end;
    end;

end;


Она выделяет все найденные соответсвтия.

Но! Если использовать ее во второй раз - он добавит новый результ к старому, то есть выделятся строки, найденные за два запроса. Делал так:

Код

for i := 1 to List.Items.Count - 1 do
  List.Items.Item[i].Selected := false;


он выделение снимает, но все равно скалдывает два результата. Помагает только клик по List: TListView.

Как это исправить?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 13.07.2025 4:45
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"