Форум: "Основная";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
ВнизРазноцветный TTreeView Найти похожие ветки
← →
Guf © (2005-02-21 23:13) [0]Здравствуйте все, у меня проблема - надо сделать items в TTreeView разными цветами (достаточно двух - трех цветов).
Сначала пробовал через TTVItem, но TTVItem не имеет поля цвет.
Пытался разобраться с примером CustomDraw, вроде всё понятно, кроме одного: где хранить цвет? Поясню, там перекрывается процедура:CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode;
State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if cdsSelected in State then
begin
//рисуем то что надо...
end;
end;
TCustomDrawState выглядит так,TCustomDrawState = set of (cdsSelected, cdsGrayed, cdsDisabled, cdsChecked, cdsFocused, cdsDefault, cdsHot, cdsMarked, cdsIndeterminate);
С cdsSelected и cdsFocused все понятно,а как быть с остальными, например пишу:if cdsMarked in State then
begin
ShowMessage("cdsMarked");
end;
сообщение никогда не появляется, хотя в хелпе написано, что cdsMarked означает, что Item помеченный, а вот как его пометить не сказано.
Помогие, буду рад любым советам.
← →
GanibalLector © (2005-02-22 01:33) [1]Недавно с ibase.ru вытянул IBAnalyst .Так там юзают VirtualTreeView.В Aboute пишут,что взят www.soft-gems.net
З.Ы.На счет исходников не знаю...не качал
← →
Denis © (2005-02-22 09:35) [2]А если записывать цвет при создании ветви в Node.Data? Если конечно у свойства нет иного назначения.
Либо осторожно использовать OverlayIndex. Не думаю, правда, что это правильно, но я иногда так делаю.
← →
Cosinus © (2005-02-22 09:41) [3]IMHO использовать Data или Objects.
← →
riv (2005-02-22 10:03) [4]Использую CustomDrawItem
А что и как будет выглядеть храню в DATA
if PTreeList(Node.Data).Count > 0 then begin
Node.Text := PTreeList(Node.Data).O_Name + " [" + IntToStr(PTreeList(Node.Data).Count) + "]";
(Sender as TTreeView).Canvas.Font.Style := (Sender as TTreeView).Canvas.Font.Style + [fsBold];
end else begin
Node.Text := PTreeList(Node.Data).O_Name;
(Sender as TTreeView).Canvas.Font.Style := (Sender as TTreeView).Canvas.Font.Style - [fsBold];
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.035 c