TListItems.BeginUpdate и TListColumns.BeginUpdate

2 отговора 62 прегледа
#1

TListItems.BeginUpdate и TListColumns.BeginUpdate

Здравйте, имам едно въпросче относно TListView.Items.BeginUpdate (TListView.Items.EndUpdate) и TListView.Columns.BeginUpdate (TListView.Columns.EndUpdate).

Значи проблема е следния:

В няколко процедури си правя обработка на компонент от клас TListView - добавяне на колони, промяна на изгледа на икони (малки, големи, списък и т.н.). При промяна на items v компонента ползвам TListView.Items.BeginUpdate и TListView.Items.EndUpdate (ползвам ги както begin end - веднага след едното си следва другото). Проблема е че при ползване на тези два метода заглавията на някои от колоните изчезват понякога. Ако обаче вместо тези два метода ползвам TListView.Columns.BeginUpdate и TListView.Columns.EndUpdate такъв проблем не се наблюдава.
Та въпроса ми е дали евентуално тези 2 чифта методи са взаимозаменяеми или има някакви особености, които са специфични само за единия чифт методи ?

Благодаря предварително.

Отговор
в отговор на Daniel #2

Re: TListItems.BeginUpdate и TListColumns.BeginUpdate

Тези методи служат за ограждане на блока в програмата, който прави промени в ListView компонента. Целта е да се избегне пречертаването след всяка промяна (ако е цикъл) и да се ускори работата на комонента. Ако променяш Columns, използвай неговия Begin..Update. Същото и за Items.

Mixy
Отговор
в отговор на Mixy #3

Re: TListItems.BeginUpdate и TListColumns.BeginUpdate

Mixy, така е , абсолютно си прав, но просто нямам идея защо така се получава такава аномалия, а иначе това което си го споменал го спазвам и точно затова се учудих че почна да ми прави номера. Лошото е че в Интернет почти нищо не намерих, а МСДН не помага особено в случая.

Отговор