Форум: "Основная";
Текущий архив: 2004.01.20;
Скачать: [xml.tar.bz2];
ВнизДерево компонентов Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.011 c