Ver Mensaje Individual
  #1  
Antiguo 08-04-2008
Avatar de NeySmall
NeySmall NeySmall is offline
Registrado
 
Registrado: abr 2008
Ubicación: Zacatecas, México
Posts: 7
Reputación: 0
NeySmall Va por buen camino
Exclamation Tengo problemas con OpenPictureDialog !!

Hola, ¿cómo están?
Espero que tengan un lindo día.
Necesito que me ayuden, tengo un problema con Delphi, estoy muy confundida.
Lo que pasa es que tengo un código en el que deseo agregar
registros a XML, el cual me funcionaba perfectamente, pero
se me ocurrio agregarle un nodo <imagen> al archivo XML,
y desde entonces tengo problemas, porque lo que guardo en
el nodo <imagen> es el nombre la imagen.
Utilizo un OpenPictureDialog para buscar la imagen y que el
nombre de la imagen se guarde en una caja de texto, pero
me he dado cuenta que el problema es cuando ejecuto el
OpenPictureDialog, pues cuando no lo ejecuto y escribo el
nombre en la caja de texto si funciona.
Es decir, que cuando ejecuto el OpenPictureDialog,
si me almacena los datos, pero me borra todos los datos que
ya existen en el archivo XML.
Y cuando no lo ejecuto, almacena los datos y no se borra
ningun otro dato, y siguen ahi los datos anteriores, y funciona perfectamente.
No se a que se deba, pero creo que el error es en el OpenPictureDialog.
Que me recomiendan.
Este es mi código.
Código:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, XMLdoc, XMLIntf, xmldom, ComCtrls, ExtCtrls, ExtDlgs,
  DBCtrls, JPEG;
///---- Boton Buscar Imagen (creo que aquí está el error)
procedure TFrmRegistrarNuevaLaptop.CmdBuscarClick(Sender: TObject);
begin
      If self.AbrirImagenLaptop.Execute then
              self.TxtImagenLaptop.Text := ExtractFileName(AbrirImagenLaptop.FileName)
         else
                  self.TxtImagenLaptop.Text := '';                  
end;
 
///---- Boton Guardar Datos en archivo XML (aqui no creo tener error.)
procedure TFrmRegistrarNuevaLaptop.CmdGuardarDatosLaptopXMLClick(Sender: TObject);
begin

XMLOwner := TDataModule.Create(nil);
      mXML := TXMLDocument.Create(XMLOwner);
      mxml.Active:=true;
      //Verificar si existe el archivo
        if FileExists('RegistroLaptops.xml') then
            begin
              //Recuperar los datos ya guardados
                mxml.LoadFromFile('RegistroLaptops.xml');
                NodoDirectorio:=mxml.DocumentElement;
            end
          else
            Begin
              //si no existe, crea el arbol XML
                NodoDirectorio:=mxml.CreateElement('directorio','MiXml');
            End;

      //Añadir una Laptop en el arbol al inicio de la lista
        NodoDirectorio.AddChild('laptop',0);
      //Añadir los componentes de laptop ( imagen, clave, ... etc.)
        NodoLaptop:=NodoDirectorio.ChildNodes.First;
        NodoLaptop.AddChild('imagen',0);
        NodoLaptop.ChildNodes[0].Text:=self.TxtImagenLaptop.Text;
        NodoLaptop.AddChild('clave',1);
        NodoLaptop.ChildNodes[1].Text:=Self.TxtClaveLaptop.Text;
        NodoLaptop.AddChild('marca',2);
        NodoLaptop.ChildNodes[2].Text:=Self.TxtMarca.Text;
        NodoLaptop.AddChild('windows',3);
        NodoLaptop.ChildNodes[3].Text:=Self.TxtWindows.Text;
        NodoLaptop.AddChild('capacidadhdd',4);
        NodoLaptop.ChildNodes[4].Text:=Self.TxtCapacidadHDD.Text;
        NodoLaptop.AddChild('capacidadram',5);
        NodoLaptop.ChildNodes[5].Text:=Self.TxtCapacidadRAM.Text;
        NodoLaptop.AddChild('redinalambrica',6);
        NodoLaptop.ChildNodes[6].Text:=Self.TxtRedInalambrica.Text;
        NodoLaptop.AddChild('precio',7);
        NodoLaptop.ChildNodes[7].Text:=Self.TxtPrecioLaptop.Text;
      //Guarda el arbol XML (directorio) en un archivo (RegistroLaptops.XML)
        mxml.DocumentElement:=NodoDirectorio;
        mXML.SaveToFile('RegistroLaptops.xml');
    self.close;
  end;
 
end.
¿Tal vez me falte más codigo en en el boton de "buscar imagen"?, yo creo que el problema está en OpenPictureDialog, porque cuando lo ejecuto, es cuando ocaciona el error... o ¿que es lo que me ocaciona ese error.?

Gracias de antemano.

Muchos saludos.

Última edición por NeySmall fecha: 08-04-2008 a las 17:02:20. Razón: Correción de sintaxis
Responder Con Cita