Попытался через AdvancedCustomDrawItem. Чего то не то получается. То есть явно надо через него, вот только что и как именно рисовать?
Ещё одно — линии соединения, они то кем прорисовываются и как добраться до их стиля?
Здравствуйте, Farik, Вы писали:
F>Попытался через AdvancedCustomDrawItem. Чего то не то получается. То есть явно надо через него, вот только что и как именно рисовать?
присоединяюсь.
у меня тоже ничего не получается.
void __fastcall TEditForm::TreeView1CustomDrawItem(TCustomTreeView *Sender,
TTreeNode *Node, TCustomDrawState State, bool &DefaultDraw)
{
if(/* условие при котором отрисовываем другим стилем */){
TRect NodeRect;
NodeRect = Node->DisplayRect(true);
TreeView1->Canvas->Font->Style=TFontStyles()<< fsBold << fsUnderline;
TreeView1->Canvas->Font->Color = clRed;
/// далее, все то, что закоментировано (если раскомментировать) вызывает всевозможные глюки отрисовки
// можно изменить шрифт
//TreeView1->Canvas->Font->Assign(EditForm->Font);
// следующий узел будет выведен черти-каким шрифтом...
// или цвет фона
//TreeView1->Canvas->Brush->Color=clBlue;
//TreeView1->Canvas->FillRect(NodeRect);
// будут оставаться "куски" этой самой подложки...
//TreeView1->Canvas->TextOut(NodeRect.Left, NodeRect.Top, Node->Text);
// если раскоментировать эту строчку, то появляется очень странный эффект -
// следующая за ней будет выведена каим-то мерзким шрифтом...
}
}
я этот "странный эффект" обхожу так: допустим по нажатию какой-то кнопки мы рекурсивно пробегаем по дереву и по каким-либо признакам решаем, будем ли мы этот узел рисовать "особым" цветом или нет. если да, то устанавливаем соответствующий флажок в ((user structure*)Node->Data)->flag.
После окончания вызываем TreeView1->Refresh();
F>Ещё одно — линии соединения, они то кем прорисовываются и как добраться до их стиля?
обрати внимание >>
//Returns the bounding rectangle for a tree node.
Windows::TRect __fastcall DisplayRect(bool TextOnly);
/*
Description
If the TextOnly parameter is true, the bounding rectangle includes only the text of the node.
Otherwise, it includes the entire line that the node occupies in the tree-view control.
*/
Hello, Farik!
You wrote on Sun, 21 Dec 2003 17:45:29 GMT:
F> Попытался через AdvancedCustomDrawItem. Чего то не то получается. То F> есть явно надо через него, вот только что и как именно рисовать? F> Ещё одно — линии соединения, они то кем прорисовываются и как F> добраться до их стиля?
Посмотреть как сделано в примере
C:\Program Files\Borland\Delphi6\Demos\CustomDraw\
или сходить на delphi-gems.com и попробовать VirtualTreeView.
Здравствуйте, Farik, Вы писали:
F>Хочу сабж.
F>Вопросы следующие.
F>Попытался через AdvancedCustomDrawItem. Чего то не то получается. То есть явно надо через него, вот только что и как именно рисовать?
(Sender as TTreeView).Canvas.Brush.Color := clRed;
Здравствуйте, Diouzshev, Вы писали:
D>Посмотреть как сделано в примере D>c:\Program Files\Borland\CBuilder6\Examples\CustomDraw\
да... и куда я смотрел... ведь уже начинал разбираться с этим примером...
спасибо, что напомнили про него.
D>или сходить на delphi-gems.com и попробовать VirtualTreeView.
а не подскажите ли как (и возможно ли?) этот компонент подключить к CBuilder 6 ? я пробовал, но не получилось инсталлировать этот компонент, хотя другие компоненты инсталлируются без проблем. Я скачал "VirtualTreesBCB5-6 Packages.zip" и "VirtualTreeview.zip". Этого достаточно? Что-то еще может надо? На сайте написано (если я правильно понял), что в "VirtualTreeview.zip" включено все необходимое для BCB6.
перед тем как это отправить узрел что ему нужен Theme Manager. скачал. как и куда его пихать не могу понять.
Конечно, ответ RTFM.
но... выполняю все точно по шагам как написано в хэлпе — ничего не выходит.
то "internal error URW3532" то "Access violation in module dcc60.dll"
обидно... VirtualTreeView на картинке такой красивый...
Hello, DPP!
You wrote on Mon, 22 Dec 2003 14:19:41 GMT:
D> Здравствуйте, Diouzshev, Вы писали:
D>> Посмотреть как сделано в примере c:\Program D>> Files\Borland\CBuilder6\Examples\CustomDraw\ D> да... и куда я смотрел... ведь уже начинал разбираться с этим D> примером... D> спасибо, что напомнили про него.
D>> или сходить на delphi-gems.com и попробовать VirtualTreeView. D> а не подскажите ли как (и возможно ли?) этот компонент подключить к D> CBuilder 6 ? я пробовал, но не получилось инсталлировать этот D> компонент, хотя другие компоненты инсталлируются без проблем. Я D> скачал "VirtualTreesBCB5-6 Packages.zip" и "VirtualTreeview.zip". D> Этого достаточно? Что-то еще может надо? На сайте написано (если я D> правильно понял), что в "VirtualTreeview.zip" включено все D> необходимое для BCB6. D> перед тем как это отправить узрел что ему нужен Theme Manager. D> скачал. как и куда его пихать не могу понять.
Просто класть на форму.
Я не ставил VTV, к сожалению, ни на BD ни на BCB, поэтому толком отсоветовать ничего не могу ((
Здравствуйте, Diouzshev, Вы писали:
D>> Здравствуйте, Diouzshev, Вы писали:
D>>> или сходить на delphi-gems.com и попробовать VirtualTreeView. D>> а не подскажите ли как (и возможно ли?) этот компонент подключить к D>> CBuilder 6 ? я пробовал, но не получилось инсталлировать этот D>> компонент, хотя другие компоненты инсталлируются без проблем. Я D>> скачал "VirtualTreesBCB5-6 Packages.zip" и "VirtualTreeview.zip". D>> Этого достаточно? Что-то еще может надо? На сайте написано (если я D>> правильно понял), что в "VirtualTreeview.zip" включено все D>> необходимое для BCB6. D>> перед тем как это отправить узрел что ему нужен Theme Manager. D>> скачал. как и куда его пихать не могу понять.
D>Просто класть на форму.
Ну дак для этого надо его сначала установить... А не выходит никак...
D>Я не ставил VTV, к сожалению, ни на BD ни на BCB, поэтому толком отсоветовать ничего не могу ((
жаль ... А я никак не могу разобраться...
Здравствуйте, DPP, Вы писали:
DPP>Здравствуйте, Diouzshev, Вы писали:
D>>Посмотреть как сделано в примере D>>c:\Program Files\Borland\CBuilder6\Examples\CustomDraw\ DPP>да... и куда я смотрел... ведь уже начинал разбираться с этим примером... DPP>спасибо, что напомнили про него.
D>>или сходить на delphi-gems.com и попробовать VirtualTreeView. DPP>а не подскажите ли как (и возможно ли?) этот компонент подключить к CBuilder 6 ? я пробовал, но не получилось инсталлировать этот компонент, хотя другие компоненты инсталлируются без проблем. Я скачал "VirtualTreesBCB5-6 Packages.zip" и "VirtualTreeview.zip". Этого достаточно? Что-то еще может надо? На сайте написано (если я правильно понял), что в "VirtualTreeview.zip" включено все необходимое для BCB6. DPP>перед тем как это отправить узрел что ему нужен Theme Manager. скачал. как и куда его пихать не могу понять.
— на С++Buildere не пишу, но на Delphi сделал бы так:
1)Theme Manager нужно тоже установить как компонет, либо добавить его исходники в пути
(можно попробовать прямо в каталог с VirtualTreeview)
чтобы при сборке VirtualTreeview находил те модули которые ему нужны.
2)попробовать добавить в пакет VirtualTreeview модули от Theme Manager'а
( ThemeSrv, TMSchema, UxTheme)
3) или еще так :
вот фрагмент из VirtualTreeview .pas
{$ifdef ThemeSupport}
{$ifndef COMPILER_7_UP}
, ThemeSrv, TMSchema, UxTheme // Windows XP themes support. Get these units from www.delphi-gems.com.
{$else}
, Themes, UxTheme
{$endif COMPILE_7_UP}
{$endif ThemeSupport}
т.е. если закоменитровать //{$define ThemeSupport}
то можно и без Theme Manager собирать
а вообще VirtualTreeview это
Пожалуйста, подскажите кто-нить, что я делаю неправильно.
Пытаюсь установить компонент VirtualTreeView в Borland С++ Builder 6.
При компиляции выдаёт ошибку, что не может найти VirtualTreeView.bpi
где его искать или как его сотворить?
P.S. В Delphi всё устанавливается без проблем.
Скачивал с сайта soft-gems.net, там есть дистрибутив, который сам
должен всё поставить и скомпилировать, но он компилирует только для Delphi,
а для Builder'а не получается.
в логе установщика вот такое сообщение.
Fatal: Unable to open file 'VIRTUALTREESC6.BPI'
то же самое, когда пытаюсь ручками скомпилировать.
пробовал установить компонент ThemeManager, скачанный с того же сайта.
С ним такая же беда.
Fatal: Unable to open file 'ThemeManagerC6.BPI'.
Понимаю, что проблема не в компоненте, а в моих действиях.
Нашёл похожую проблему на сайте community.borland.com :
Article #28154: Linker Fatal Error unable to locate BPI file.
так и не понял, что нужно делать.