Главная страница
    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.006 c
14-27195
Igor_thief
2002-08-14 16:03
2002.09.09
DB


1-26942
race1
2002-08-29 06:52
2002.09.09
componenty


3-26934
ivlex
2002-08-17 07:48
2002.09.09
О работе с базой Access через ODBC


1-27093
stas_a
2002-08-27 12:09
2002.09.09
Изменения после компилирования


1-27063
Сайбрекс
2002-08-28 02:40
2002.09.09
Какие возможности Delphi?





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