Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Вниз

TTreeView принудительное обновление TTreeNode.   Найти похожие ветки 

 
AlexanderSK   (2004-10-13 18:11) [0]

Подскажите, пожалуйста, как в TTreeView принудительно заставить перерисоваться один конкретный TTreeNode?

Проблема в том, что при определенном событии я меняю TTreeNode иконку, при этом эти изменения не всегда сразу становятся видны!

Подскажите, пожалуйста, как с этим бороться!

Заранее благодарен!!!


 
Pentium133 ©   (2004-10-13 18:15) [1]

при изминении иконки вызови Invalidate;


 
AlexanderSK   (2004-10-14 11:05) [2]

>при изминении иконки вызови Invalidate;
У TTreeNode Invalidate нет.
а ежли вызывать Invalidate у TTreeView он противно мигает...
Можно ли этого избежать?


 
KSergey ©   (2004-10-14 11:21) [3]

> [2] AlexanderSK   (14.10.04 11:05)
> Можно ли этого избежать?

Нет


 
AlexanderSK   (2004-10-14 11:23) [4]

ясно!
а можно сделать так чтобы напротив некоторых листьев были чекбоксы?


 
NAlexey ©   (2004-10-14 11:25) [5]

>KSergey ©   (14.10.04 11:21) [3]
Почему это нельзя? А Items.BeginUpdate, Items.EndUpdate?


 
KSergey ©   (2004-10-14 11:32) [6]

> [5] NAlexey ©   (14.10.04 11:25)
> >KSergey ©   (14.10.04 11:21) [3]
> Почему это нельзя? А Items.BeginUpdate, Items.EndUpdate?

Это не то. Это чтобы не перерисовывал при обновлении. Но на Invalidate он все равно моргать будет.
Другое дело, что может после Items.EndUpdate перерисовка пройдет "красивее"? (в смысле может и Invalidate не понадобится в явном виде). Но маловероятно.


 
[lamer]Barmaglot ©   (2004-10-14 13:30) [7]

Уменьшить количество нод... Тогда противно мигать не будет. Выводить в треевиев только ноды которые видны в данный момент...


 
Pentium133 ©   (2004-10-14 13:30) [8]

может TreeView.DoubleBuffered := true;


 
Pentium133 ©   (2004-10-14 13:31) [9]


> [lamer]Barmaglot ©   (14.10.04 13:30) [7]

Бред какойто....
Ясный пень, те которые не видны они и не выводятся...


 
[lamer]Barmaglot ©   (2004-10-14 13:45) [10]

то Pentium133 ©   (14.10.04 13:31) [9]

Компьютер обрабатывает все данные которые содержатся в ТрееВиев при каждой перерисовке, но выводит только те которые видны... Совет не мой а микрософта, надеюсь ему ты веришь? В ВинАПИ есть специальные ф-ции позволяющие выводить только определенное количество ВИДИМЫХ нод, а остальное загружать по требованию...


 
NAlexey ©   (2004-10-14 15:08) [11]

Всеравно не понятно о чем разговор, на пустом месте. Упрощенно так: TreeView у него Images. В котором 2 bmp - Checked и UnChecked.

procedure TForm1.TreeView1GetSelectedIndex(Sender: TObject;
 Node: TTreeNode);
begin
 Node.SelectedIndex := Node.ImageIndex;
end;

procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
const
 aImages: array[boolean] of Byte = (0, 1); //bmpUnchecked, bmpChecked
var
 HitTest : THitTests;
 Node: TTreeNode;
 NodeRect: TRect;
begin
 with Sender as TCustomTreeView do
 begin
   HitTest := GetHitTestInfoAt(X, Y);
   if htOnIcon in HitTest then
   begin
     Node := GetNodeAt(X, Y);
     if Node <> nil then
     begin
       Node.ImageIndex := aImages[Node.ImageIndex = 0];
       NodeRect := Node.DisplayRect(False);
       InvalidateRect(Handle, @NodeRect, False);
     end;
   end;
 end;
end;



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

Форум: "Основная";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.042 c
6-1093279257
Johnny Raw
2004-08-23 20:40
2004.10.31
вопрос по поводу IdHTTP1.Response.LastModified


9-1088556429
Xerx
2004-06-30 04:47
2004.10.31
Вуфер трафарета


1-1098148223
Simon
2004-10-19 05:10
2004.10.31
Прозрачная форма


3-1096532944
Koala
2004-09-30 12:29
2004.10.31
вопрос по RxDBLookUpCombo


1-1098078732
Павел
2004-10-18 09:52
2004.10.31
Автопрорисовка Формы.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский