Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2010, 11:55   #1
Gregor
Форумчанин
 
Регистрация: 24.10.2007
Сообщений: 208
По умолчанию ListView и ScrollBar

Добрый день. Поможите с таким вопросов. Есть ListView. Строки добавляются сверху. т.е item := ListView.Items.Insert(0). При добавлении выделенная строка смещается на позицию вниз. Как сделать так чтобы при добавлении новой строки я оставался на выделенной строке, но ScrollBar создавал видимость того, что строки добавляются сверху.т.е перемещался на нужную позицию. Спасибо!
интенсивно гуглю прежде чем задать вопрос

Последний раз редактировалось Gregor; 31.10.2010 в 13:21.
Gregor вне форума Ответить с цитированием
Старый 31.10.2010, 13:22   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Первое, что пришло в голову:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var InsertItem: TListItem;
begin
  with ListView1 do
  begin
  InsertItem := Items.Insert(0);
  if SelCount=0 then
  ItemIndex:=0;
  SetFocus;
  end;
  InsertItem.Caption := IntToStr(p);
  Inc(p);
  ListView1.Scroll(0, 20);
end;
mihali4 вне форума Ответить с цитированием
Старый 31.10.2010, 13:33   #3
Gregor
Форумчанин
 
Регистрация: 24.10.2007
Сообщений: 208
Вопрос

Спасибо! Кажется это то что надо!)

16:31

А в случае если OwnerData = true? чтот не получается.
делаю так:
Код:
var
  zList: TStringList;

procedure TForm1.FormCreate(Sender: TObject);
begin
  zList := TStringList.Create
end;

procedure TForm1.ListView1Data(Sender: TObject; Item: TListItem);
begin
  Item.Caption := zList[Item.index];
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
   zList.Insert(0, IntToStr(zList.Count));
   with ListView1 do
     Items.Count := zList.Count;
     Scroll(0, 20);
     ItemIndex := ItemIndex + 1;
     ListView1.Refresh;
end;
После какого то момента начинает съезжать.
Заметил такую странность. если делаю ListView.ItemIndex := любое число в доп. приделах, то все нормально работает. Если же выделяю мышью и снова начинаю добавлять, то съезжает.
интенсивно гуглю прежде чем задать вопрос

Последний раз редактировалось Gregor; 31.10.2010 в 18:21.
Gregor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перетащить элемент ListView в другой ListView? Paul Hindenburg Компоненты Delphi 5 26.01.2013 11:35
[C# + WPF] ListView. Узнать выделена ли строка в нём. ListView.View == GridView. Casper-SC WPF, UWP, WinRT, XAML 2 12.08.2010 19:04
ScrollBar Rebel123 Общие вопросы Delphi 2 19.07.2009 11:35
scrollbar street-walker Общие вопросы Delphi 4 29.04.2009 23:45