| 
 |  
| 
 |  
Наступает перед отрисовкой узла.
Синтаксис
| 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+ | Руководство пользователя
 |   
 |   
 |  
 |  | 
 |   
 |