Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.20;
Скачать: CL | DM;

Вниз

Дерево компонентов   Найти похожие ветки 

 
MikeZ ©   (2004-01-06 17:34) [0]

Не знает ли кто, есть ли для Д5 какой-нибудь эксперт, который отображает дерево используемых компонентов, как это делает Д7?

Если нет, тогда ссылку на исходники/примеры экспертов для Делфи. Рискну сам написать :-)


 
Юрий Зотов ©   (2004-01-06 17:43) [1]

Во всех Delphi есть встроенный браузер (меню View, проект должен быть откомпилирован). Позволяет смотреть дерево объектов как в конкретном проекте, так и всей VCL.


 
MikeZ ©   (2004-01-06 17:56) [2]

Это ведь совсем не то! Мне не классы надо смотреть с их предками, а компоненты, которые лежат на форме. Т.е., нужна навигация по компонентам, когда их слишком много.


 
MikeZ ©   (2004-01-06 18:12) [3]

Ладно, тогда ссылку на СДК по экспертам, если есть такое...


 
Тимохов ©   (2004-01-06 18:15) [4]

Во!
А чем тебе не нравиться смотреть dfm - там вся иерархия видна.


 
афвуд ©   (2004-01-06 18:36) [5]

НУ я написал такой недавно.
Только на C++Builder.
Если надо могу кинуть исходник процедурки.


 
афвуд ©   (2004-01-06 18:37) [6]

"Если надо" - это я в смысле если не запаришься в Сишном коде моём разбираться :)


 
Vuk ©   (2004-01-06 19:02) [7]

to MikeZ:
>Ладно, тогда ссылку на СДК по экспертам, если есть такое...

Delphi\Source\ToolsAPI\

www.gexperts.org


 
афвуд ©   (2004-01-06 19:07) [8]

Вот примерно так выглядит урезанный вариант моей процедурки. Здесь дерево будет ТОЛЬКО показывать дерево контролов.
А допустим все менюитемы будут просто в корне этого дерева лежать. Но это можно точно также решить как и с контролами.

void RecurBuildTreeForControl(TTreeNodes *Nods, TTreeNode *Nod, TWinControl * WinCon)
{
for(int i=0;i<WinCon->ControlCount;i++)
{
TWinControl *Tem;
if(Tem = dynamic_cast<TWinControl *>(WinCon->Controls[i]))
{
RecurBuildTreeForControl(Nods, Nods->AddChild(Nod,Tem->Name) ,Tem);
}
else
{
Nods->AddChild(Nods->Item[0],WinCon->Controls[i]->Name);
}
}

void RecurBuildTree(TTreeNodes *Nods, TForm * For)
{
Nods->Clear();
TTreeNode *Node=Nods->Add(NULL,For->Name);
for(int i=0;i<For->ComponentCount;i++)
{
TWinControl *Tem;
if(Tem = dynamic_cast<TWinControl *>(For->Components[i]))
{
RecurBuildTreeForControl(Nods, Nods->AddChild(Node,Tem->Name) ,Tem);
}
else
{
Nods->AddChild(Node,For->Components[i]->Name);
}
}


 
MikeZ ©   (2004-01-06 22:50) [9]

2Тимохов:
Иерархия, конечно видна, но листать с десяток тысяч строк - это не слАбо. Т.е. - не подходит из-за явного неудобства.

2афвуд:
С превеликим удовольствием возьму этот код... и отдам человеку, знающему Си ;-). Иль сам посмотрю. Думаю разберусь. Только вот вопрпос: ты эксперт написал? Или просто построение дерева компонентов? Если просто дерево (как видно из кода), то я и сам знаю, как это делать. Весть вопрос в том, как это замутить в виде эксперта.
Если у тебя именно эксперт, то намыль, плз.

2Vuk:
Delphi\Source\ToolsAPI\

www.gexperts.org

Это один или два варианта? Но я и так, и эдак не понял. Пожалуйста, обьясни поподробнее.


 
MikeZ ©   (2004-01-06 22:57) [10]

2Vuk:
Понял, что это. Спасибо. Буду разбираться, но это слишком много.

2All:
Вопросы все равно остались.


 
афвуд ©   (2004-01-07 16:21) [11]

Прости. Невнимательно прочитал твой вопрос.

А что есть эксперт в твоём понимании?

У меня прога - она симулирует дельфёвый рисователь окошек. Ну и дерево такое же как и в Дельфи. Я думал у тебя такой же замут :)


 
MikeZ ©   (2004-01-08 14:52) [12]

Эксперт - это не в моем понимании ;-), а в Дельфийском. Библиотека, которая запускается вместе с Делфи и внутри ее.


 
MikeZ ©   (2004-01-08 16:43) [13]

Как этот эксперт делать, уже нашел. Но возникают вопросы. Наприсер такой: я хочу получить имя активной формы. Я делаю так:
Function GetActiveForm: TForm;
Begin
Result := TForm((BorlandIDEServices As INTAEditWindow).GetForm);
End;

Непонятно почему возникает ошибка... Вот и вопрос - почему?



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

Текущий архив: 2004.01.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
14-63307
Anatoly Podgoretsky
2003-12-31 09:24
2004.01.20
С днем рождения 31.12.2003


14-63396
Igor_thief
2003-12-28 15:14
2004.01.20
Currency


1-63076
BlackLord2003
2004-01-08 00:01
2004.01.20
Не стандартные кодировки.


1-63148
Sirakuz
2004-01-07 02:28
2004.01.20
Обращение к private переменным класса из ассемблерной вставки


3-63014
vlgrig1961
2003-12-23 08:30
2004.01.20
В чем разница у Оракла между табл. sys.all_tables и sys.dba_table