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

Вниз

TreeView   Найти похожие ветки 

 
Neket   (2006-10-05 16:41) [0]

Народ подскажите пожалуйста.
1.Возможно ли в САБЖ разные путкты ветви сделать разными шрифтами если да то как?
2. Если я использую в САБЖ ImageList то когда я выделяю разные пункты деревьев то у меня отображается катинка рядом с названиями этих пунктов которая в ImageList нулевая, а не та которая должна быть если элемент не выделен. Как отключить эту неприятную функцию.
(Объяснил криво, не спорю. Если возникнут вопросы то с радостью отвечу.)
Help Plzzzz......


 
Neket   (2006-10-05 17:08) [1]

С вопросом 2 разобрался. Подскажите как со шрифтами можно работать?


 
Джо ©   (2006-10-05 17:13) [2]

OnCustomDrawItem
OnAdvancedCustomDrawItem


 
ProgRAMmer Dimonych   (2006-10-05 17:18) [3]

Из одного справочника...

Как сделать так, чтобы в TreeView текущий Node выделялся другим шрифтом, типа Underline и т.д.?

-----------------------------------------------------------------------------
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if cdsSelected in State then
begin
 Sender.Canvas.Font.Style := Sender.Canvas.Font.Style + [fsUnderline];
end;
end;

Или ещё что-то похожее...

Хочется выделять некотоpые стpочки в TTreeView жиpным или бледным. Как?

-----------------------------------------------------------------------------
procedure SetNodeState(node :TTreeNode; Flags: Integer);
var
tvi: TTVItem;
begin
FillChar(tvi, Sizeof(tvi), 0);
tvi.hItem := node.ItemID;
tvi.mask := TVIF_STATE;
tvi.stateMask := TVIS_BOLD or TVIS_CUT;
tvi.state := Flags;
TreeView_SetItem(node.Handle, tvi);
end;  

И вызываем:

----------------------------------------------------------------------------
SetNodeState(TreeView1.Selected, TVIS_BOLD); // Текст жиpным
SetNodeState(TreeView1.Selected, TVIS_CUT); // Иконкy бледной  

(Ctrl+X)

----------------------------------------------------------------------------
SetNodeState(TreeView1.Selected, TVIS_BOLD or TVIS_CUT); // Текст жиpным
SetNodeState(TreeView1.Selected, 0); // Hи того, ни дpyгого  

Когда-то (мечтательно закатив глаза в потолок) в API было еще и TVIS_DISABLE. Снесли собаки. А pекомендyемyю стилистикy yпотpебления этого добpа смотpи в MS Internet News.

Может быть, с изменениями подойдёт...


 
Neket   (2006-10-05 17:18) [4]

А можно немного поподробнее.
Plzzz....


 
Neket   (2006-10-05 17:20) [5]

Упс... Сори... Все спасибо..


 
Neket   (2006-10-05 17:22) [6]

А тип TTVItem в каком модуле находится?


 
ProgRAMmer Dimonych   (2006-10-05 17:26) [7]

Я тут глянул, кажись на сях пример. В VCL справке есть ссылки на типы, названия которых начинаются с TTV, но в соответствующих страницах эти неприличные слова присутствуют только в сишном примере. В Дельфовом - TTreeNode. Вот что значит из справочника копировать ([3])...


 
Neket   (2006-10-05 17:30) [8]

Я нашел что этот тип содержится в CommCtrls но когда я подключаю этот модуль то он пишет что CommCtrls.dcu не найден.


 
ProgRAMmer Dimonych   (2006-10-05 17:37) [9]

А TTreeNode получится?


 
Neket   (2006-10-05 17:43) [10]

Всмысле?


 
ProgRAMmer Dimonych   (2006-10-05 17:45) [11]

Ну этот tvi заменить как-нибудь нодом...


 
Neket   (2006-10-05 17:57) [12]

Все переустановил дельфи и все заработало. спасибо за помошщь.


 
ProgRAMmer Dimonych   (2006-10-05 18:34) [13]

> [12]
И не лень же было!!! :)


 
Neket   (2006-10-06 16:53) [14]

Вновь возвращаюсь к этой теме. А как можно цвет поменять. Ну к примеру чтобы текст был не черным а серым?


 
ProgRAMmer Dimonych   (2006-10-06 18:07) [15]

Из того же справочника...

Как сделать так, чтобы в TreeView текущий Node выделялся другим шрифтом, типа Underline и т.д.?

----------------------------------------------------------------------------
procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
if cdsSelected in State then
begin
 Sender.Canvas.Font.Style := Sender.Canvas.Font.Style + [fsUnderline];
end;
end;


 
Neket   (2006-10-07 14:48) [16]

Точнооо!!!
Если использовать  Sender.Canvas.Font.Color то можно менять цвет.
Спасибо. Очень помог.


 
ProgRAMmer Dimonych ©   (2006-10-07 20:11) [17]

Не за что. Помогать начинающим - священный долг программиста... Будут вопросы - сразу сюда...


 
Neket   (2006-10-11 10:01) [18]

И вновь проблемка.
На этапе формирования дерева я ветвям первого уровня устанавливаю жирным шрифтом:

procedure SetNodeState(node :TTreeNode; Flags: Integer);
var
tvi: TTVItem;
begin
FillChar(tvi, Sizeof(tvi), 0);
tvi.hItem := node.ItemID;
tvi.mask := TVIF_STATE;
tvi.stateMask := TVIS_BOLD or TVIS_OVERLAYMASK;
tvi.state := Flags;
TreeView_SetItem(node.Handle, tvi);
end;
...............
for k:=Low(sitemass[i].bc) to High(sitemass[i].bc) do if sitemass[i].bc[k].Build=0 then SetNodeState(MyTreeNode2, TVIS_BOLD);

И все нормально работает.

Но если я начинаю менять цвет некоторых пунктов в обработчике TreeView1CustomDrawItem то "Жирность" некоторых пунктов пропадает*.
If (SiteMass[i].Site_Name=Node.Text) and (CompareText(SiteMass[i].Etap,"55")=0) then node.TreeView.Canvas.Font.Color:=CLRed;

* Замечено что жирность пропадает только следующего пункта после замены предыддущего.
____Пункт1
|
|____Пункт2
|
|____Пункт3
|
|____Пункт4
|
|____Пункт5
Вот если менять цвет  В "Пункте1" или "Пункте4" то  в "Пункте2" или "Пункте5"  жирность пропадает.


 
Neket   (2006-10-11 10:37) [19]

Вот если менять цвет  В "Пункте1" или "Пункте4" то  в "Пункте2" или "Пункте5"  жирность пропадает. ---- Не правельно
Вот если менять цвет  В "Пункте1" или "Пункте3" то  в "Пункте2" или "Пункте4"  жирность пропадает.  ---- Правельно
Сори.... Ошибся не много :-)



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

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

Наверх





Память: 0.49 MB
Время: 0.042 c
2-1160382514
Volodya_
2006-10-09 12:28
2006.10.29
Excel->Delphi


3-1157358772
SergP.
2006-09-04 12:32
2006.10.29
Получить текст с сообщением об ошибке.


2-1160737247
o_serg
2006-10-13 15:00
2006.10.29
DesignTime


15-1160573296
Rule
2006-10-11 17:28
2006.10.29
Подскажите пожалуйста где взять формальную граматику T-SQL(MSSQL)


15-1160038958
worldmen
2006-10-05 13:02
2006.10.29
Подобрать Switch.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский