![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Количество Childs у выбранного TreeView.Node [D6]
Ольга © (2005-07-08 15:56:00)Как определить количество Childs у выбранного TreeView.Node?
Только перебором или есть что-нибудь стандартное?
VMcL (2005-07-09 09:04:00) [1]>> -=jet=- (08.07.05 21:45) [8]
Ацтой. COM-интерфейсов нету.
Юрий Зотов (2005-07-09 03:23:00) [2]> -=jet=- (08.07.05 21:45) [8]
type
TTwoPlusTwoCalculator = class
private
function GetTwoPlusTwo: integer;
public
property TwoPlusTwo: integer read GetTwoPlusTwo;
end;
function TTwoPlusTwoCalculator.GetTwoPlusTwo: integer;
begin
Result := 4
end;
P.S. И не иначе.
P.P.S. И ничуть не хуже.
P.P.P.S. А еще можно написать аж целую библиотеку классов для таблицы умножения.
Просто Джо (2005-07-09 02:49:00) [3][8] -=jet=- (08.07.05 21:45)
> P.S. И не иначе.
Дадад.
-=jet=- (2005-07-08 21:45:00) [4]
type
TTreeNodeAdv = class(TTreeNode)
private
function GetNestedCount: integer;
published
property NestedCount: integer read GetNestedCount;
end;
{...}
function TTreeNodeAdv.GetNestedCount: Integer;
var
Node: TTreeNodeAdv;
begin
Result := 0;
Node := GetFirstChild;
while Node <> nil do
begin
Result := Result + Node.NestedCount + 1;
Node := Node.GetNextChild(Node)
end
end;
P.S. И не иначе.
Ольга (2005-07-08 16:23:00) [5]Юрий Зотов ©
Да, вопрос был неверно сформулирован. Sorry, пятница...
Просто Джо ©
Конечно, я бы и сама сделала, но до чего ж сладка халява.
Спасибо.
Просто Джо (2005-07-08 16:16:00) [6]
function GetSubNodeCount (ARootNode: TTreeNode): Integer;
procedure CountNodes (ARootNode: TTreeNode; var Count: Integer);
var
I: Integer;
begin
Inc (Count);
for I := 0 to ARootNode.Count-1 do
CountNodes(ARootNode[I],Count);
end;
begin
Result := -1; // сам RootNode не считаем
CountNodes(ARootNode,Result);
end;
И всех делоф :-)
Юрий Зотов (2005-07-08 16:16:00) [7]> Ольга (08.07.05 16:08) [2]
> а хотелось бы прибавить к ним "внуков",
Тогда, наверное, об этом стоило сказать в вопросе?
Digitman (2005-07-08 16:14:00) [8]
> Ольга (08.07.05 16:08) [2]
> видимо придется
а иначе - никак : "родитель" не знает и не обязан знать про своих внуков/правнуков, число коих в любой момент может измениться, в "прямые обязанности родителя" входит лишь контроль за "прямыми потомками"
рекурсивный алгоритм для подсчета прямых и непрямых потомков узла в дан.ситуации вполне оправдан и сложности в реализации не представляет
Ega23 (2005-07-08 16:11:00) [9]Рекурсивным обходом, по другому - кю.
Ольга (2005-07-08 16:08:00) [10]Count мне дает только количество "детей", а хотелось бы прибавить к ним "внуков", "правнуков"... Дерево у меня больно ветвистое и так не хочется по нему ползать, но видимо придется.
Юрий Зотов (2005-07-08 15:58:00) [11]Смотрим справку, видим Count.