JS+
Усиленный язык сценариев для Windows
с возможностью встраивания
в ваши приложения
О языке JS+ Справочник Скачать JS+ DLL
Контакты
СПРАВОЧНИК ПО ЯЗЫКУ JS+ Содержание

OnCustomDrawItem

- событие TTreeView
Компонент TTreeView
Наступает перед отрисовкой узла.
Синтаксис
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 узел отмечен
Пример (JS+)
// Главная форма
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+Руководство пользователя
Адрес этой страницы: http://jsplus.ru/MANUAL/JSPlus/Component/TTreeView/Event/OnCustomDrawItem.htm
© 2024,