Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-04-2008
Avatar de NeySmall
NeySmall NeySmall is offline
Registrado
 
Registrado: abr 2008
Ubicación: Zacatecas, México
Posts: 7
Poder: 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
  #2  
Antiguo 08-04-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No termino de aclararme. No sé si obtienes algún error. Si es así sería bueno que lo indicaras literalmente, es decir, el texto del mensaje de error. Por otro lado, me llama la atención que este código, simplemente, compile:

Código Delphi [-]
procedure TFrmRegistrarNuevaLaptop.CmdBuscarClick(Sender: TObject);
begin
  If self.AbrirImagenLaptop.Execute then
    self.TxtImagenLaptop.Text := ExtractFileName(AbrirImagenLaptop.FileName);
  else
    self.TxtImagenLaptop.Text := '';                  
end;

¿Por qué? Por el "punto y coma" luego de "ExtractFileName(AbrirImagenLaptop.FileName)". No debería haber ahí ningún punto y coma, puesto que, de haberlo, el programa no compilaría. ¿Tal vez omitiste algo de código de ese procedimiento? ¿O qué pasa ahí?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 08-04-2008
Avatar de NeySmall
NeySmall NeySmall is offline
Registrado
 
Registrado: abr 2008
Ubicación: Zacatecas, México
Posts: 7
Poder: 0
NeySmall Va por buen camino
Exclamation

Ok. Perdón ese punto y coma lo puse ahorita por error a la hora de copiar el código aquí en el foro, ya lo corregi el el mensaje, en el programa el codigo no tiene ese punto y coma.

Mas a detalle mi problema es este:

El OpenPictureDialog se ejecuta al darle clic en el boton "Buscar Imagen"

El programa corre, pero si ejecuto el OpenPictureDialog, al darle clic en "buscar imagen" para que aparezca el nombre de la imagen en la caja de texto, me almacena los datos en el archivo XML, pero me borra los que ya existen para ser remplazados por los nuevos datos. En cambio si no ejecuto el OpenPictureDialog, es decir, si no le doy clic en buscar Imagen (que es el boton donde se ejecuta el OpenPictureDialog) y escribo el nombre de la imagen, si me almacena datos en el archivo XML y no me borra los datos anteriores.

Es poreso que creo tener el error ahí.

Errores de sintaxis no tengo, el error que tengo es un error lógico, y creo que es en el boton de BuscarImagen (donde se ejecuta el OpenPictureDialog).

Última edición por NeySmall fecha: 08-04-2008 a las 17:19:01. Razón: agregar detalles.
Responder Con Cita
  #4  
Antiguo 08-04-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Pero, es que si el problema viniera de otro lado... pero, tal y como lo planteas, si es el "diálogo" lo que da problemas, en el código que muestras no se ve por dónde puede venir dicho problema, esto es, que haces el uso habitual de este tipo de diálogos, y lo usas como se debe, así que no se entiende el problema, a no ser que digas algo como "Cuando ejecuto el diálogo me aparece el error [aquí el mensaje de error]".
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 08-04-2008
Avatar de NeySmall
NeySmall NeySmall is offline
Registrado
 
Registrado: abr 2008
Ubicación: Zacatecas, México
Posts: 7
Poder: 0
NeySmall Va por buen camino
Exclamation

Todo el relajo es el OpenPictureDialog

Última edición por NeySmall fecha: 08-04-2008 a las 17:42:48.
Responder Con Cita
  #6  
Antiguo 08-04-2008
Avatar de NeySmall
NeySmall NeySmall is offline
Registrado
 
Registrado: abr 2008
Ubicación: Zacatecas, México
Posts: 7
Poder: 0
NeySmall Va por buen camino
Exclamation Ok. Mas detalles...

Hola, perodón si no soy muy explísita.

Esque eso es lo malo, que no me dice nada de nada.
No me muestra ningún error, ni warning, ni nada.
El programa corre perfectamente.

El problema es que cuando le doy clic en el boton "buscar Imagen" para explorar archivos y seleccionar un archivo.jpg y que al cerrarse la ventana
después de haber seleccionado el archivo, se copie el nombre de la imagen en la caja de texto, (en este caso se guardaría en TxtImagenLaptop.text),
los datos nuevos que quiero meter al archivo.xml me los almacena, pero me borra todo lo que ya contiene el archivo.xml, es decir, los reemplaza,

Si no le doy clic a ese boton y escribo el nombre en la caja de texto, que es donde se debe copiar el nombre de la imagen (TxtImagenLaptop.text), me guarda los datos perfectamente, y sin borrar ninguno de los datos ya existentes.

Es decir, si no ejecuto el OpenPictureDialog, todo marcha con excelencia, pero ese no sería mi caso, yo quiero que funcione perfectamente el OpenPictureDialog.

Y sip, pues siempre en otros programas he usado así con esa misma sintaxis el OpenPictureDialog. Pero no sé, porque ese problema.


Última edición por NeySmall fecha: 08-04-2008 a las 17:45:56.
Responder Con Cita
  #7  
Antiguo 09-04-2008
Avatar de NeySmall
NeySmall NeySmall is offline
Registrado
 
Registrado: abr 2008
Ubicación: Zacatecas, México
Posts: 7
Poder: 0
NeySmall Va por buen camino
Smile Ya lo solucioné

Jajaja... Mil disculpas a todos.
Ya lo solucioné.
Era algo que nada que ver.
El problema no era ni de programación, ni de Delphi.

El problema es de Windows, esque tengo vista, y no funciona igual que en otros windows.
Solo movi la carpeta de archivos XML a otro nivel arriba de la subcarpeta de donde almaceno los archivos de codigos de delphi, y así se solucionó todo.

Eso era todo, y no saben el coraje y la risa que me daba al mismo tiempo.

Pero bueno, de todas formas muchas gracias por la aportación.

Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tengo problemas con variables string Chimbo JAVA 1 02-11-2007 21:21:07
Tengo problemas con IDataReader selmanc .NET 0 26-06-2006 19:44:39
tengo problemas con el tmediaplayer meosre Varios 1 20-09-2005 17:21:20
Tengo Problemas con mi listado armakaisen Impresión 1 07-06-2005 23:39:21
IIF (tengo problemas) Ignacio SQL 4 02-04-2004 06:59:06


La franja horaria es GMT +2. Ahora son las 16:38:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi