|
|
|
|
Наступает перед отрисовкой узла.
Синтаксис
| function OnCustomDrawItem(
| | Sender, | | Node, | | State, | | DefDraw
| | );
|
| Параметры
|
| Параметр
| Тип
| Описание
|
| Sender
| TTreeView
| дескриптор компонента TTreeView
|
| Node
| TTreeNode
| дескриптор узла
|
| State
| Enumset
| состояние узла (см. ниже)
|
| DefDraw
| TBoolean
| разрешить дальнейшую отрисовку по умолчанию. DefDraw.Value=true - разрешить (значение по умолчанию)
|
|
| Параметр State
|
| Значение
| Описание
|
| cdsSelected
| узел выделен
|
| cdsDefault
| узел является элементом по умолчанию
|
| cdsDisabled
| узел недоступен
|
| cdsFocused
| узел имеет фокус ввода
|
| cdsGrayed
| узел неактивен
|
| cdsHot
| узел находится под указателем мыши
|
| cdsIndeterminate
| узел находится в неопределенном состоянии
|
| cdsMarked
| узел отмечен
|
|
// Главная форма frm=new TForm(); frm.Caption="JS+ - событие TTreeView OnCustomDrawItem"; frm.Width =450; frm.Height=300;
// Строка состояния stb=new TStatusBar(frm); stb.SimpleText=" Оформление узлов в стиле web-ссылок";
// TreeView trv=new TTreeView(frm); trv.BorderStyle=bsSingle; trv.Left=trv.Top=10; trv.Width=frm.ClientWidth-trv.Left*2; trv.Height=stb.Top-trv.Top*2; trv.OnCustomDrawItem=trv_CustomDrawItem;
// Заполнение дерева for (i=1;i<=5;i++) { tn1=new TTreeNode(trv); tn1.Text="Узел "+i; for (j=1;j<=i;j++) { tn2=new TTreeNode(tn1); tn2.Text="Узел "+i+"-"+j; } }
trv.SetFocus(); frm.ShowModal();
// Обработчик события OnCustomDrawItem function trv_CustomDrawItem(trv,trn,state,DefDraw) { var cnv=trv.Canvas,rct=trn.DisplayRect(true);
cnv.Font.Name=trv.Font.Name; cnv.Font.Size=trv.Font.Size; DefDraw.Value=true;
// Если узел выбран if (state & cdsSelected) return;
// Очистить фон cnv.Brush.Style=bsSolid; cnv.Brush.Color=trv.Color; cnv.FillRect(rct);
// Вывести текст cnv.Font.Color=clBlue; cnv.Font.Style=fsUnderline; cnv.SetBkMode(TRANSPARENT); cnv.TextOut( rct.Left+(rct.Width() -cnv.TextWidth (trn.Text))/2+1, rct.Top +(rct.Height()-cnv.TextHeight(trn.Text))/2-1, trn.Text ); }
Совместимость
C++ Builder/Delphi
|
| JS+ | Руководство пользователя
|
|
|
| |
|
|