Asunto: Guardar y cargar datos XML en un TreeView con Delphi
¿Cómo se pueden guardar los datos de un TreeView en un fichero y luego volver a cargarlos en un TreeView?
¿Se pueden guardar en formato XML?
Utilizo Borland Delphi 6.
Publicado:
Jue Sep 24, 2009 2:33 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Guardar y cargar datos XML en un TreeView con Delphi
Anuncios
varios escribió:
¿Cómo se pueden guardar los datos de un TreeView en un fichero y luego volver a cargarlos en un TreeView?
¿Se pueden guardar en formato XML?
Utilizo Borland Delphi 6.
Aquí te mostramos dos funciones den Delphi, una para cargar los datos desde un fichero XML existente y otra para guardar los datos de un TreeView en un fichero con formato XML:
procedure ProcessNode(Node : IXMLNode; tn : TTreeNode);
var
cNode : IXMLNode;
begin
if Node = nil then Exit;
tn := tree.Items.AddChild(tn, Node.Attributes['text']);
tn.ImageIndex := Integer(Node.Attributes['imageIndex']);
tn.StateIndex := Integer(Node.Attributes['stateIndex']);
cNode := Node.ChildNodes.First;
while cNode <> nil do
begin
ProcessNode(cNode, tn);
cNode := cNode.NextSibling;
end;
end; (*ProcessNode*)
begin
tree.Items.Clear;
XMLDoc.FileName := fichero;
XMLDoc.Active := True;
if XMLDoc.ChildNodes.First = nil then
begin
ShowMessage('nil');
Exit;
end;
jNode := XMLDoc.DocumentElement.ChildNodes.First;
while jNode <> nil do
begin
ProcessNode(jNode,nil);
jNode := jNode.NextSibling;
end;
XMLDoc.Active := False;
end;
Ejemplo de uso para guardar los datos de un TreeView en un fichero XML:
Código:
procedure TformMenuPrincipal.actGuardarDatosTVExecute(
Sender: TObject);
begin
dlGuardar.Filter := 'Archivos XML (*.xml)|*.xml|Todos los archivos (*.*)|*.*';
dlGuardar.DefaultExt := 'xml';
if dlGuardar.Execute then
exportarTreeAXML(tv, dlGuardar.FileName);
end;
Ejemplo de uso para cargar los datos de un fichero XML en un TreeView:
Código:
procedure TformMenuPrincipal.actCargarDatosTVExecute(Sender: TObject);
var
continuar : boolean;
begin
dlAbrir.Filter := 'Archivos XML (*.xml)|*.xml|Todos los archivos (*.*)|*.*';
dlAbrir.DefaultExt := 'xml';
continuar := true;
if tv.Items.Count > 0 then
begin
if MessageDlg('Hay elementos que serán reemplazados ¿desea continuar?',
mtConfirmation, [mbyes,mbno], 0) = mryes then
continuar := true
else
continuar := false;
end;
if continuar then
begin
if dlAbrir.Execute then
begin
cargarXMLATree (tv, XMLDocument1, dlAbrir.FileName);
end;
end;
end;
Nota 1: se necesita el compoente XMLDocument agregado al formulario.
Nota 2: el "tv" es el nombre del componente TreeView agregado al formulario.
Tienes el ejemplo de su uso en la aplicación open source AjpdSoft Notificador cambios en sistema:
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A