Algoritmo recursivo
Olá Pessoal,
preciso criar uma função recursiva para varrer todos os items de um TListView(na verdade estou usando o TVirtualStringTree e acredito que o algoritmo pouco mude) para fazer um somatário por grupos.
O que desejo fazer tá na imagem abaixo:
[IMG]
http://www.agenda.eti.br/01.jpg
[/IMG]
Meu código:
Acredito que o algoritmo precise ser recursivo:
Código:
function TForm1.percorreTodosNovo(_nodeInicial: PVirtualNode):TTime;
var
data : PTreeData;
begin
result := 0;
_nodeInicial := _nodeInicial.FirstChild;
while _nodeInicial <> nil do
begin
data := VST.GetNodeData(_nodeInicial);
if VST.HasChildren[_nodeInicial] then
begin
result := result + percorreTodosNovo(_nodeInicial);
data^.FTempo := TimetoStr(result);
end
else
begin
result := result + StrToTimeDef(data^.FTempo, 0);
end;
_nodeInicial := _nodeInicial.NextSibling;
end;
end;
preciso criar uma função recursiva para varrer todos os items de um TListView(na verdade estou usando o TVirtualStringTree e acredito que o algoritmo pouco mude) para fazer um somatário por grupos.
O que desejo fazer tá na imagem abaixo:
[IMG]
http://www.agenda.eti.br/01.jpg
[/IMG]
Meu código:
Acredito que o algoritmo precise ser recursivo:
Código:
function TForm1.percorreTodosNovo(_nodeInicial: PVirtualNode):TTime;
var
data : PTreeData;
begin
result := 0;
_nodeInicial := _nodeInicial.FirstChild;
while _nodeInicial <> nil do
begin
data := VST.GetNodeData(_nodeInicial);
if VST.HasChildren[_nodeInicial] then
begin
result := result + percorreTodosNovo(_nodeInicial);
data^.FTempo := TimetoStr(result);
end
else
begin
result := result + StrToTimeDef(data^.FTempo, 0);
end;
_nodeInicial := _nodeInicial.NextSibling;
end;
end;
Carlos Phelippe
Curtidas 0
Respostas
Leonardo Xavier
18/11/2011
Qual verão do Delphi você esta utilizando?
GOSTEI 0
Carlos Phelippe
18/11/2011
Delphi 2010.
Mas se você puder ajudar pode mandar pra qquer versão que eu adapto.
Mas se você puder ajudar pode mandar pra qquer versão que eu adapto.
GOSTEI 0
Leonardo Xavier
18/11/2011
Carlos estou baixando a versão do Delphi 2010, se você poder esperar até sexta feira (neste tempo posso configurar minha ferramenta e colocar o componente para funcionar) e então poderei ajudar você de uma maneira mais objetiva.
GOSTEI 0
Carlos Phelippe
18/11/2011
Amigo,
esse componente (http://www.soft-gems.net/index.php?option=com_content&task=view&id=12&Itemid=33) funciona a partir do delphi 7.
Acredito que a versão do Delphi não seja problema.
esse componente (http://www.soft-gems.net/index.php?option=com_content&task=view&id=12&Itemid=33) funciona a partir do delphi 7.
Acredito que a versão do Delphi não seja problema.
GOSTEI 0