Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Envío de registros y sus respuestas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-01-2025
Avatar de ramherfer
ramherfer ramherfer is offline
Miembro
 
Registrado: may 2013
Ubicación: Valencia
Posts: 162
Poder: 14
ramherfer Va por buen camino
Cita:
Empezado por DarkDudae Ver Mensaje
Buenas a todos y sobre todo, muchas gracias seccion_31 por este aportazo.

Entiendo que para probar esta demo, es necesario tener un certificado digital instalado en el equipo donde se va a probar, ya que me da un error al realizar un envío:

Código:
Error al realizar el envío; (ESOAPHTTPException)-Received content of invalid Content-Type setting: text/html - SOAP expects "text/xml")
y lo achaco a eso. ¿Estoy en lo correcto o en el entorno de pruebas no sería necesario este certificado?
Si tienes que tener un cerfificado instalado para realizar el envío. En caso contrario no funciona.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos.
  #2  
Antiguo 25-01-2025
Quim Herrera Quim Herrera is offline
Miembro
 
Registrado: may 2004
Posts: 44
Poder: 0
Quim Herrera Va por buen camino
Hola a todos y muchas gracias a seccion_31 por el aporte

He adaptado el código para ejecutarlo como un servicio. Funciona perfectamente si ejecuto el exe directamente, pero a la que lo intento ejecutar como servicio me da el mismo error:

Código:
(ESOAPHTTPException)-Received content of invalid Content-Type setting: text/html - SOAP expects "text/xml"
Tengo el certificado guardado en Equipo Local ( LocalSystemStore ), el certificado lo encuentra y asigna el número de serie a Httprio, pero da este error hacer el envio.
¿Sabéis si hay que hacer algo más con el certificado para que funcione en un servicio?

Gracias y un saludo
  #3  
Antiguo 25-01-2025
Avatar de ramherfer
ramherfer ramherfer is offline
Miembro
 
Registrado: may 2013
Ubicación: Valencia
Posts: 162
Poder: 14
ramherfer Va por buen camino
Cita:
Empezado por Quim Herrera Ver Mensaje
Hola a todos y muchas gracias a seccion_31 por el aporte

He adaptado el código para ejecutarlo como un servicio. Funciona perfectamente si ejecuto el exe directamente, pero a la que lo intento ejecutar como servicio me da el mismo error:

Código:
(ESOAPHTTPException)-Received content of invalid Content-Type setting: text/html - SOAP expects "text/xml"
Tengo el certificado guardado en Equipo Local ( LocalSystemStore ), el certificado lo encuentra y asigna el número de serie a Httprio, pero da este error hacer el envio.
¿Sabéis si hay que hacer algo más con el certificado para que funcione en un servicio?

Gracias y un saludo
Ojo el servicio no puede buscar certificados en el almacen del usuario, por lo que tendrá que estar instalado a nivel de máquina para que en caso de usar CAPICOM lo busque en CAPICOM_LOCAL_MACHINE_STORE.
en HTTPRIO1HTTPWebNode1BeforePost Estás usando CAPICOM_CURRENT_USER_STORE y debes usar CAPICOM_LOCAL_MACHINE_STORE. Pero cuando tengas el certificado instalado a nivel de máquina no a nivel de usuario.
Espero te sirva
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos.
  #4  
Antiguo 26-01-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Poder: 10
seccion_31 Va por buen camino
buenos dias !

Ya tengo disponible una version mas que funcional del componente y servidor de mensajes para D7.

Incluyo la version compilada y codigo fuente del servidor en B10.

Lamentablemente no he podido estar por aqui antes, por motivos personales, pero ahora procurare estar mas atento. especialmente esta semana por si alguien quiere implementarlo.

Lo he tenido que subir a mi google drive porque github no me deja.

https://drive.google.com/file/d/1fKx...usp=drive_link


Aquí no hay milagros, se usa D7 para componer el envío, pero finalmente se transmite atraves de una aplicacion en B10, lo que si es cierto es que mucho mas manejable desde D7.

Se arranca el servidor de mensajes y después de esto, podéis ejecutar la demo (que sube una hoja excel), o empezar desarrollar vuestra aplicacion.

La parte mas imporante es un record que guarda la factura(s), la factura a enviar y la anterior (si existe). El servidor de mensajes se intenta hacer cargo de componer el resto.

Actualmente soporta, facturas, y tickets, y su rectificacion. Ademas se ofrece el control del almacen de certificados, validacion del nif, y el cotejo con la AEAT de los registros enviados.

La cuestión es que hay que probarlo y pulirlo. En teoria es posible utilizarlo con versiones mas alla de D7, directamente sin servidor.

Queda ofrecido aqui como una demostracion, bajo la TOTAL responsabilidad de quien lo utilice.



Saludos cordiales y mucha suerte.
  #5  
Antiguo 27-01-2025
Avatar de DarkDudae
DarkDudae DarkDudae is offline
Miembro
 
Registrado: abr 2006
Posts: 177
Poder: 21
DarkDudae Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje
buenos dias !

Ya tengo disponible una version mas que funcional del componente y servidor de mensajes para D7.

Incluyo la version compilada y codigo fuente del servidor en B10.
Muchas gracias por el código.
Lo estudiaré en profundidad, pero tiene muy buena pinta. En un principio pensé en hacerme un ejecutable o un servicio completo que fuese mirando en la BD cada X segundos si hay alguna factura nueva a enviar, pero con el tema de generar el QR para los tickets, algo de envío directo con un componente se hace más práctico.
  #6  
Antiguo 27-01-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Poder: 10
seccion_31 Va por buen camino
Buenos dias !

Registro que carga la factura, podeis verlo en la unidad: utiposVerifactu y necesario para añadir las facturas al envio.

Código:
  TRegistroFactura=record
        sesion          :integer;          // no tocar
        nfactura        :integer;          // no tocar


        numSerieFactura :string[60];
        fechaFactura    :string[10];
        alta_baja       :string[1];       // "A"lta, o "B"aja

        DescripcionOperacion:TMyString;

        cliente         :string[120];
        clienteNIF      :string[20];      // 9 (nif) ... 20 (otros docs.)
        clientetipoNIF  :string[2];       // si se deja en blanco se determinara segun el pais
        clienteCodPais  :string[2];       // si se deja en blanco se considerara ES

        canarias        :boolean;         // = true si de canarias

        nivas : integer;
        iva   : array[0..maxivas] of TRegistroFacturaIVAS;

        cuotatotal, total:currency;

        situacion :TMyString;

        huella    :TMyString;

        facturaRectificada      :string[60];  // nº serie factura rectificada
        fechaFacturaRectificada :string[10];  // fecha
    end;
Los campos:

clientetipoNIF :string[2]; // si se deja en blanco se determinara segun el pais
clienteCodPais :string[2]; // si se deja en blanco se considerara ES
canarias :boolean; // = true si de canarias

Son opcionales, es decir si no se envia el clienteTipoNIF se determinara segun el pais, (lista de paises comunitarios o exportacion):

Código:
  country_ue:array[0..26] of string=('DE','AT','BE','BG','CY','HR','DK','SI','ES','EE','FI',
                                 'FR','GR','HU','IE','IT','LV','LT','LU','MT','NL','PL',
                                 'PT','CZ','SK','RO','SE');
Si no hay pais en clienteCodPais, se considerara ES

y Canarias si es un cliente canario.

La huella en la factura actual la calculara el componente.

Situacion: No se utiliza, que recuerde.

Asi que basicamente es limitarse a cumplimentar los datos basicos de una factura en la factura actual.



En la factura anterior, es identificarla, NO hace falta cargar todos los datos:

Numeroserie
Fecha
Huella

Si la factura anterior se encuentra entre las emitidas del envio, la huella la colocara el componente, solo necesaria si esta fuera del paquete de envio. Por ello una vez transmitida la factura hay que guardar su huella y sobre todo el CSV devuelto.

Saludos !

Última edición por seccion_31 fecha: 27-01-2025 a las 08:17:50.
  #7  
Antiguo 27-01-2025
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.449
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por seccion_31 Ver Mensaje
Lo he tenido que subir a mi google drive porque github no me deja.
https://drive.google.com/file/d/1fKx...usp=drive_link
He subvido una copia al FTP del club:
http://terawiki.clubdelphi.com/Otros...27_01_2025.rar
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
  #8  
Antiguo 28-01-2025
Avatar de ramherfer
ramherfer ramherfer is offline
Miembro
 
Registrado: may 2013
Ubicación: Valencia
Posts: 162
Poder: 14
ramherfer Va por buen camino
Buenos días.
Como planteais el maldito control de flujo. En una instalacion monopuesto lo tengo, está claro, pero en una instalación multipuesto que funciona al libre albedrio y que cada usuario puede hacer facturas teniendo la misma serie de facturación, ya que los contadores están a nivel de ejercicio me está volviendo loco.
No se si la solución sería cada usuario un SIF distinto, envio independiente de un mismo (OT) y que cada uno envíe y encadene sus registros. Para esto creo que tambien cada usuario debería tener su serie de facturas y su propio servidor de envío.
A ver si me podeis echar un cable, un rayito de luz a esto.
Gracias.
Un saludo.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos.
  #9  
Antiguo 28-01-2025
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.216
Poder: 24
newtron Va camino a la fama
Cita:
Empezado por ramherfer Ver Mensaje
Buenos días.
Como planteais el maldito control de flujo. En una instalacion monopuesto lo tengo, está claro, pero en una instalación multipuesto que funciona al libre albedrio y que cada usuario puede hacer facturas teniendo la misma serie de facturación, ya que los contadores están a nivel de ejercicio me está volviendo loco.
No se si la solución sería cada usuario un SIF distinto, envio independiente de un mismo (OT) y que cada uno envíe y encadene sus registros. Para esto creo que tambien cada usuario debería tener su serie de facturas y su propio servidor de envío.
A ver si me podeis echar un cable, un rayito de luz a esto.
Gracias.
Un saludo.

Por si te sirve de algo la solución que yo he montado puede no ser la más elegante pero creo que es bastante simple y efectiva. Al emitirse una factura desde cualquier terminal se crea en una carpeta compartida un fichero .csv con la información de la factura y mi programa "enviador" lo que hace es estar atento a los ficheros que van apareciendo en esa carpeta, los va encolando por orden de llegada y los va enviando y borrando. De esta manera, en caso de problema y que todo se atasque sigo teniendo en la carpeta los ficheros pendientes de enviar.


Saludos.
__________________
Be water my friend.
  #10  
Antiguo 03-02-2025
nincillo nincillo is offline
Miembro
 
Registrado: may 2017
Posts: 190
Poder: 10
nincillo Va por buen camino
Cita:
Empezado por seccion_31 Ver Mensaje
buenos dias !

Ya tengo disponible una version mas que funcional del componente y servidor de mensajes para D7.

Incluyo la version compilada y codigo fuente del servidor en B10.

Lamentablemente no he podido estar por aqui antes, por motivos personales, pero ahora procurare estar mas atento. especialmente esta semana por si alguien quiere implementarlo.

Lo he tenido que subir a mi google drive porque github no me deja.

https://drive.google.com/file/d/1fKx...usp=drive_link


Aquí no hay milagros, se usa D7 para componer el envío, pero finalmente se transmite atraves de una aplicacion en B10, lo que si es cierto es que mucho mas manejable desde D7.

Se arranca el servidor de mensajes y después de esto, podéis ejecutar la demo (que sube una hoja excel), o empezar desarrollar vuestra aplicacion.

La parte mas imporante es un record que guarda la factura(s), la factura a enviar y la anterior (si existe). El servidor de mensajes se intenta hacer cargo de componer el resto.

Actualmente soporta, facturas, y tickets, y su rectificacion. Ademas se ofrece el control del almacen de certificados, validacion del nif, y el cotejo con la AEAT de los registros enviados.

La cuestión es que hay que probarlo y pulirlo. En teoria es posible utilizarlo con versiones mas alla de D7, directamente sin servidor.

Queda ofrecido aqui como una demostracion, bajo la TOTAL responsabilidad de quien lo utilice.



Saludos cordiales y mucha suerte.
Muchas gracias por este gran aporte.

Voy a intentar compilar tanto la versión D7 como la "moderna" a ver si puedo compilar sin problemas y a partir de ahí empezar a adaptarlo a mi programa.

¿No has podido hacer la parte del envío utilizando D7 y por eso has optado a hacerlo con versiones más modernas?. Yo en su momento, conseguí hacer pruebas de envío, pero el problema lo tenía con el TLS de windows 7. Si el mismo ejecutable lo lanzaba desde un Windows 10 si que parecía funcionar...

Un saludo.
  #11  
Antiguo 04-02-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Poder: 10
seccion_31 Va por buen camino
Cita:
Empezado por nincillo Ver Mensaje
Muchas gracias por este gran aporte.

Voy a intentar compilar tanto la versión D7 como la "moderna" a ver si puedo compilar sin problemas y a partir de ahí empezar a adaptarlo a mi programa.

¿No has podido hacer la parte del envío utilizando D7 y por eso has optado a hacerlo con versiones más modernas?. Yo en su momento, conseguí hacer pruebas de envío, pero el problema lo tenía con el TLS de windows 7. Si el mismo ejecutable lo lanzaba desde un Windows 10 si que parecía funcionar...

Un saludo.
No pude hacerlo con D7, ya importando el WSDL creo que tuve problemas, copie la unidad ya importada y habia un monton de tipos que D7 no reconocia, y hasta ahi.

Lo dicho, si alguien sabe como hacer funcionar la llamada SOAP desde una DLL y que no de error general que me avise.

Y me gustaria que alguien probara a usar un archivo PFX en lugar de usar el certificado desde el almacen.

Saludos y gracias !
  #12  
Antiguo 04-02-2025
Avatar de DarkDudae
DarkDudae DarkDudae is offline
Miembro
 
Registrado: abr 2006
Posts: 177
Poder: 21
DarkDudae Va por buen camino
He encontrado un pequeño error en la aplicación servidora.

Si intentas cotejar una factura simple (que por ende no tiene ni cliente ni NIF) arroja una excepción en las líneas:

Código Delphi [-]
cliente             :=res.RegistroRespuestaConsultaFactuSistemaFacturacion[j].DatosRegistroFacturacion.Destinatarios[0].NombreRazon;
clienteNIF          :=res.RegistroRespuestaConsultaFactuSistemaFacturacion[j].DatosRegistroFacturacion.Destinatarios[0].NIF;

Se puede solucionar con un try - except, pero creo que así es mucho mejor:

Código Delphi [-]
if Assigned(res.RegistroRespuestaConsultaFactuSistemaFacturacion[j].DatosRegistroFacturacion.Destinatarios) then
begin
   cliente             :=res.RegistroRespuestaConsultaFactuSistemaFacturacion[j].DatosRegistroFacturacion.Destinatarios[0].NombreRazon;
   clienteNIF          :=res.RegistroRespuestaConsultaFactuSistemaFacturacion[j].DatosRegistroFacturacion.Destinatarios[0].NIF;
end;

Saludos
  #13  
Antiguo 01-02-2025
Quim Herrera Quim Herrera is offline
Miembro
 
Registrado: may 2004
Posts: 44
Poder: 0
Quim Herrera Va por buen camino
Cita:
Empezado por ramherfer Ver Mensaje
Ojo el servicio no puede buscar certificados en el almacen del usuario, por lo que tendrá que estar instalado a nivel de máquina para que en caso de usar CAPICOM lo busque en CAPICOM_LOCAL_MACHINE_STORE.
en HTTPRIO1HTTPWebNode1BeforePost Estás usando CAPICOM_CURRENT_USER_STORE y debes usar CAPICOM_LOCAL_MACHINE_STORE. Pero cuando tengas el certificado instalado a nivel de máquina no a nivel de usuario.
Espero te sirva
Iba por ahí, en HTTPRIO1HTTPWebNode1BeforePost seguia usando el certificado de Usuario.
Muchas gracias ramherfer!!!!
  #14  
Antiguo 01-02-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Poder: 10
seccion_31 Va por buen camino
buenos dias !

encantado ramherfer que el componente haya cumplido las expectativas, gracias por tu reconocimiento.

Todavía espero que habrá que corregir alguna cosa, me extrañaria mucho que estuviera muy bien. (de hecho acabo de ver un error, porque ahora siempre envia a pre-produccion, asi que en unos dias subire otra version)
(abajo pongo lo que hay que corregir, hoy asi rapido pero habrá alguna mejora mas).

ontisoft, la primera demo la puedes descartar, era una prueba temprana.

la segunda demo es la buena. En el programa que envia desde Excel, no olvidéis seleccionar un certificado del almacén valido e indicar vuestros datos en la pestaña Datos Sistema Informático.

Para los que quieran usar el componente sin D7, desde versiones B10 en adelante, pueden hacerlo directamente usando las funciones del servidor. No lo he probado, pero debería funcionar sin mas

Para ello, hay que hacer un uses tal que así:

uses uTiposVerifactu, uVerifactuFuncs;

Aumentar el stack size maximo a: 9048576 Project -> options->linker

Tendremos las siguientes funciones disponibles: Os recomiendo que mireis la llamada a esas funciones desde la unidad de componente para D7 a modo de consulta. en la unidad: uTVerifactu.pas

Código:
function  inicio_sesion( var crearSesion:TVeriFactuInicio ):integer; stdcall;
// con sesion:
function  anadeFactura(sesion:integer; var factura:TRegistroFacturas):integer; stdcall;
procedure envio(sesion:integer; var resultadoEnvio:TResultadoEnvio);  stdcall;
function  cierreSesion(sesion:integer; cierre:TCierreSesion):boolean;
function  resetSesion(sesion:integer; cierre:TCierreSesion):boolean;
function  consultar(sesion:integer; var resultado:TConsultaResultado):boolean;

// sin sesion:
procedure validarNIF(var nifvalidador:TValidadorNif);

// auxiliares
procedure clear_factura(afactura:TRegistroFactura);
procedure clear_sesion(sesion:integer);

// Certificados
procedure GetCertificados(var certificados:TCertificados);
procedure GetAliasCertificado(var certificados:TAliasCert);
function BUSCAR_CERTIFICADO_SERIAL(Nombre_Certificado: String): string;

Correccion para permitir el envio a otra url

Unidad uTVeriFactu

Reemplazar esta funcion, por este codigo:

Código:
//
// crear una sesion
//
function  TVerifactu.inicio:boolean;
var
    inicioVeriFactu    : TVeriFactuInicio;
    filemap,filehandle : longint;
begin
      checkAutoRun;

      serverHandle := FindWindow(nil, pchar(serverName) );
      if IsWindow( serverHandle ) then
      begin
          inicioVeriFactu.simular:=simular;
          inicioVeriFactu.emisor:=emisor;
          inicioVeriFactu.sistemaInformatico:=sistemaInformatico;
          inicioVeriFactu.nombreCertificado:=Certificado;
          inicioVeriFactu.passwordCertificado:=passwordCertificado;
          inicioVeriFactu.SaveXmlEnvio:=fSave;
          inicioVeriFactu.SaveXMLResultado:=fResp;
          inicioVeriFactu.incidencia:=false;

          inicioVeriFactu.resultadoSesion:=-1;
          if fEndPoint<>'' then
            inicioVeriFactu.direccion_envio:=fEndPoint
          else
            inicioVeriFactu.direccion_envio:='https://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP';

          filemap:=saveNewFileMappingData(@inicioVeriFactu, sizeof(inicioVeriFactu), filehandle);

          SENDMESSAGE( serverHandle, WM_VERIFACTU_INICIO, 0, filemap );

          loadFileMappingData(@inicioVeriFactu, sizeof(inicioVeriFactu), filemap);
          closeFileMappingData(filehandle);

          if inicioVeriFactu.resultadoSesion<>0 then
          begin
              sesion:=inicioVeriFactu.resultadoSesion;
              result:=true;
          end
          else
          begin
              result:=false;
          end;
      end
      else
          result:=false;
end;

Última edición por seccion_31 fecha: 01-02-2025 a las 08:56:13.
  #15  
Antiguo 01-02-2025
Avatar de ramherfer
ramherfer ramherfer is offline
Miembro
 
Registrado: may 2013
Ubicación: Valencia
Posts: 162
Poder: 14
ramherfer Va por buen camino
Bueno pues parece ser que me esta marcando todos los envíos como incidencia.
Las facturas las genero con la fecha del día actual y por defecto el tiempo máximo es de 60 segundos, controlado por timer que se resetea y actualizaal final del envio según el tiempo de espera que informe la AEAT en la respuesta del envio.
Desconozco si me pasa solo a mi.
Voy a ver si le doy un repaso a todo.
__________________
Se humilde para admitir tus errores, inteligente para aprender de ellos y maduro para corregirlos.
  #16  
Antiguo 02-02-2025
Avatar de seccion_31
seccion_31 seccion_31 is offline
Miembro
 
Registrado: ene 2017
Posts: 472
Poder: 10
seccion_31 Va por buen camino
Lo acabo de probar con la demostración de excel y funciona correcto (he lanzado 3 facturas). No veo el campo incidencia en el XML ni en la web de la AEAT.

Asegurate que usas la compilacion que deje en el rar. MSG_BERLIN\Win32\Debug\msgverifactu.exe del 2 de enero (no creo que haya otra ahi dentro)

Despues del envio, puedes abrir el servidor verifactu de la barra de tareas, ir a la pestaña de la sesion y ver a partir de que factura se activa la incidencia. (de ahi en adelante todo va con incidencia)

Saludos

Cita:
Empezado por ramherfer Ver Mensaje
Bueno pues parece ser que me esta marcando todos los envíos como incidencia.
Las facturas las genero con la fecha del día actual y por defecto el tiempo máximo es de 60 segundos, controlado por timer que se resetea y actualizaal final del envio según el tiempo de espera que informe la AEAT en la respuesta del envio.
Desconozco si me pasa solo a mi.
Voy a ver si le doy un repaso a todo.
Tema Cerrado


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Verifactu o por requerimiento (no-verifactu) ¿decisión del usuario? Maska10 Temas legales 2 07-12-2024 12:34:47
Demo de una applicación para una estación de enfermera con RAD Studio AgustinOrtu La Taberna 1 21-07-2015 17:41:35
Demo Delphi, EMail Caral Internet 1 19-12-2006 00:37:56
Demo de delphi 2005 mazinger Varios 2 18-12-2004 09:23:09
El Rave que viene con Delphi es una Demo? apicito Impresión 0 04-06-2003 11:33:36


La franja horaria es GMT +2. Ahora son las 23:05:54.


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