Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > TListView


Автор: Ak47black 11.4.2007, 19:32
Хотел-бы узнать как работая с TListView получить местоположение прокрутки и как потом (после обновления TListView ) использовать это значение что-бы прокрутить до исходного положения?  smile 

Автор: _hunter 11.4.2007, 19:36
TopIndex (или как-то так...)

Автор: Ak47black 11.4.2007, 20:28
_hunter, ну ,а если точнее.
Как собираешься его использовать?

Автор: _hunter 12.4.2007, 11:17
в смысле? до обновления пишеш его в какую-нить переменную, после обновления пишеш из переменной в него. все...

Автор: Ak47black 12.4.2007, 13:06
_hunter, ты вообше прочитал о каком компоненте идет речь.
Там TListView ,а не TListBox.
Давай осмысленые ответы или тогда вообше непиши.  smile 

Автор: _hunter 12.4.2007, 13:42
ну не TopIndex а TopItem... большая разница?..

Автор: MetalFan 12.4.2007, 15:13
а хелп почитать религия не позволяет? ;)
Read TopItem to determine the first item in the list view that the user can see. TopItem reflects how far the list view has been scrolled. 

TopItem is only implemented when ViewStyle is vsReport or vsList. For vsIcon and vsSmallIcon view styles, use the ViewOrigin property to determine the scroll position.

Автор: MetalFan 12.4.2007, 17:45
ну что? фантазия савсем не работает? ;)
вот пример с сохранением/восстановлением позиции скролла:
Код

uses CommCtrl;

var
  gScrollPos: TPoint;

procedure TForm1.btn1Click(Sender: TObject);
begin
  gScrollPos := lvw.ViewOrigin;
end;

procedure TForm1.btn2Click(Sender: TObject);
begin
  ListView_Scroll(lvw.Handle, gScrollPos.X  - lvw.ViewOrigin.X , gScrollPos.Y - lvw.ViewOrigin.Y );
end;


придумалось всего минут за 10)

Автор: Ak47black 12.4.2007, 19:56
Да всё работает на УРА!.
MetalFan, +
Спасиба за код!

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