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

Вниз

шрифт TNode в TTreeView   Найти похожие ветки 

 
orion_st   (2002-08-27 11:26) [0]

Как можно выделить TNode в TTreeView другим шрифтом(цветом)?
Если можно, ответьте и на email.


 
Song   (2002-08-27 11:28) [1]

Написать обработчик для TTreeView.onAdvancedCustomDraw/onAdvancedCustomDrawItem


 
Skier   (2002-08-27 11:28) [2]

>orion_st
см. событие TTreeView.OnCustomDrawItem
Пример есть в Help-е.


 
orion_st   (2002-08-27 14:27) [3]

В хелпе на это событие примера нет. Там есть Node, а как из него выцепить его шрифт?


 
Skier   (2002-08-27 14:30) [4]

>orion_st


> В хелпе на это событие примера нет


"Папы этого ответ помещаю в книжке..."
Специально для ВАС !


procedure TCustomDrawForm.TVCustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
var
NodeRect: TRect;
begin
with TV.Canvas do
begin
//If DefaultDraw it is true, any of the node"s font properties can be
//changed. Note also that when DefaultDraw = True, Windows draws the
//buttons and ignores our font background colors, using instead the
//TreeView"s Color property.

if cdsSelected in State then
begin
Font.Assign(SelectedFontDialog.Font);
Brush.Color := SelBkgColorDialog.Color;
end;
DefaultDraw := FDefaultDrawItem;
//DefaultDraw = False means you have to handle all the item drawing yourself,
//including the buttons, lines, images, and text.

if not DefaultDraw then

begin
//draw the selection rect.
if cdsSelected in State then
begin
NodeRect := Node.DisplayRect(True);
FillRect(NodeRect);
end;

NodeRect := Node.DisplayRect(False);

if None1.Checked then

//no bitmap, so paint in the background color.
begin
Brush.Color := BkgColorDialog.Color;
Brush.Style := FBrushStyle;
FillRect(NodeRect)
end
else
//don"t paint over the background bitmap.

Brush.Style := bsClear;

NodeRect.Left := NodeRect.Left + (Node.Level * TV.Indent);

//NodeRect.Left now represents the left-most portion of the expand button

DrawButton(NodeRect, Node);

NodeRect.Left := NodeRect.Left + TV.Indent + FButtonSize;

//NodeRect.Left is now the leftmost portion of the image.

DrawImage(NodeRect, Node.ImageIndex);

NodeRect.Left := NodeRect.Left + ImageList.Width;

//Now we are finally in a position to draw the text.

TextOut(NodeRect.Left, NodeRect.Top, Node.Text);

end;
end;
end;




 
Skier   (2002-08-27 14:34) [5]

>orion_st


> Там есть Node, а как из него выцепить его шрифт?



Node.TreeView.Font ?


 
orion_st   (2002-08-27 17:30) [6]

> Node.TreeView.Font ?

Такого св-ва нет. Ты по каким Дельфям смотришь? У меня 5-е.
Тот кусок кода есно заработал. :)

Уточню, проблему. Нужно чтобы при формировании дерева сразу
выделялись те Node, которые соответсвуют определенному условию.


 
Skier   (2002-08-27 17:36) [7]

>orion_st


> Такого св-ва нет.


TTreeView(Node.TreeView).Font


 
orion_st   (2002-08-28 10:17) [8]

Извини, что я попался такой непонятливый, но
TTreeView(Node.TreeView).Font мне выделяет весь TreeView, а надо только отдельные Node в ветви.


 
ЮЮ   (2002-08-28 10:26) [9]

> Там есть Node, а как из него выцепить его шрифт?
У Node, естесственно, нет никакого Font,
но в TTreeView.OnCustomDrawItem ты и определяешь каким цветом тебе рисовать конктретный Node и им рисуешь



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

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

Наверх




Память: 0.46 MB
Время: 0.007 c
1-26951
NeyroSpace
2002-08-28 18:07
2002.09.09
Как разделить свою прогу на 2а ехе ?


6-27147
chukcha
2002-05-08 05:23
2002.09.09
Какие библиотеки в разных ОС?


3-26932
andwcomm
2002-08-20 17:32
2002.09.09
проверка Is null в триггере для Ib 6.0


6-27154
andrey_pst
2002-07-02 15:55
2002.09.09
Отправка файлов по e-mail


1-27108
VID
2002-08-28 21:48
2002.09.09
Выполнение функции в отдельном потоке





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