Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

Delphi опять глючит   Найти похожие ветки 

 
Андрей Молчанов   (2005-08-11 22:29) [0]

Здравствуйте!

Мне надо удалить все выделенные элементы первого уровня из TTreeView. Multiselect установлен в True. Использую следующий код:

var
 Node, PrevNode: TTreeNode;
begin
 Node := CheckTree.Items.GetFirstNode;
 CheckTree.Items.BeginUpdate;
 try
   while Node <> nil do begin
     if Node.Selected then begin
       PrevNode := Node.getNextSibling;
       Node.Delete;
       Node := PrevNode;
     end else
       Node := Node.getNextSibling;
   end;
 finally
   CheckTree.Items.EndUpdate;
 end;


Но если выбран первый элемент дерева, то удаляютя ВСЕ элементы дерева. В чем здесь ошибка? Пожалуйста, помогите!


 
KilkennyCat ©   (2005-08-11 22:44) [1]

а если второй, то остается только первый?


 
GuAV ©   (2005-08-11 23:47) [2]

 for I := TreeView1.SelectionCount - 1 downto 0 do
   if TreeView1.Selections[I].Level = 1 then
     TreeView1.Selections[I].Delete;

?


 
Андрей Молчанов   (2005-08-12 12:07) [3]

Спасибо!

Написал вот такую функцию:
procedure TfrmProperties.btnRemoveClick(Sender: TObject);
var
 i: integer;
begin
 CheckTree.Items.BeginUpdate;
 try
   for i := CheckTree.SelectionCount - 1 downto 0 do
     if CheckTree.Selections[i].Level = 0 then
       CheckTree.Selections[i].Delete;
 finally
   CheckTree.Items.EndUpdate;
 end;
end;

Но, если до вызова в дереве была горизонтальная прокрутка, а после вызова в результате удаления длинного элемента, полоса исчезла, то нижняя граница дерева не перерисовывается. Без BeginUpdate и EndUpdate все прекрасно работает. Есть ли выходы, кроме как убрать BeginUpdate и EndUpdate?



Страницы: 1 вся ветка

Текущий архив: 2005.09.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.041 c
14-1124648728
Knight
2005-08-21 22:25
2005.09.18
Где можно взять нормальный nConvers для миранды?


14-1124296161
Ксардас
2005-08-17 20:29
2005.09.18
А не подскажите...


2-1123708380
Timskiy
2005-08-11 01:13
2005.09.18
Подскажите, как создать программу!!!


14-1124451327
cyborg
2005-08-19 15:35
2005.09.18
Нужно ли переустанавливать ForceWare?


3-1123152103
mvalera
2005-08-04 14:41
2005.09.18
Сортировка данных в завязаных базах.