Главная страница
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.043 c
4-1122359742
idiliya
2005-07-26 10:35
2005.09.18
Как правильно нотифицировать сервис из Winlogon Notification Pack


14-1124384456
maximsm
2005-08-18 21:00
2005.09.18
Win XP права пользоваелей


14-1124719149
red_imp
2005-08-22 17:59
2005.09.18
Народ каким кодеком открыть *.3gp


14-1124967414
Димитрий
2005-08-25 14:56
2005.09.18
Альтернатива Путину


6-1116102198
KonstantinXaker(KX)
2005-05-15 00:23
2005.09.18
Рисунок из Интернета в TImage