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 07-05-2021
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 14
engranaje Va por buen camino
Los dcu deben volver a generarse cuando cambian los pas. Si delphi 5 no reconoce que el pas ha cambiado puede no generar el dcu correspondiente al compilar, pero al hacer un Build siempre debería volver a generar los dcu. yo reconozco que nunca he usado refind con delphi 5, ya comenté que con delphi 5.0 uso el replace componente de gexperts. ¿Podrías comentar como corrompe exactamente los dfm?. ¿Los dfm de tu proyecto son "text DFM" o son binarios? puedes comprobarlo abriéndolos con cualquier editor de texto o pulsando con el boton derecho sobre el formulario y comprobando si tienes marcada con un check la última opción del menú que se muestra "text DFM".
Responder Con Cita
  #2  
Antiguo 07-05-2021
strelok strelok is offline
Miembro
 
Registrado: sep 2017
Posts: 181
Poder: 7
strelok Va por buen camino
Cita:
Empezado por engranaje Ver Mensaje
Los dcu deben volver a generarse cuando cambian los pas. Si delphi 5 no reconoce que el pas ha cambiado puede no generar el dcu correspondiente al compilar, pero al hacer un Build siempre debería volver a generar los dcu. yo reconozco que nunca he usado refind con delphi 5, ya comenté que con delphi 5.0 uso el replace componente de gexperts. ¿Podrías comentar como corrompe exactamente los dfm?. ¿Los dfm de tu proyecto son "text DFM" o son binarios? puedes comprobarlo abriéndolos con cualquier editor de texto o pulsando con el boton derecho sobre el formulario y comprobando si tienes marcada con un check la última opción del menú que se muestra "text DFM".
Creo que aquí, para cambiar los componentes acceden como "text DFM", sino no se puede (actualmente lo hacen de forma manual). En un rato edito esta respuesta y subo una captura de pantalla del error que me muestra delphi luego de usar el refind.exe en ficheros DFM.
__________________
Sean los orientales tan ilustrados como valientes.
Responder Con Cita
  #3  
Antiguo 07-05-2021
strelok strelok is offline
Miembro
 
Registrado: sep 2017
Posts: 181
Poder: 7
strelok Va por buen camino
Red face

Bueno, he probado nuevamente.

Aquí les dejo lo que ejecuté en consola (en color rojo lo censurado): https://ibb.co/F5287w8

Aquí el error que me da Delphi 5: https://ibb.co/DGRKrc2

Básicamente hice lo siguiente:

1- Hice una copia de un proyecto en C:\\
2- Copie refind.exe dentro de la copia del proyecto (del paso 1).
3- Ejecuté CMD y hice un CD a la ruta completa de proyecto.
4- Ejecuté el comando que pueden observar en la primera imagen.
5- Obtuve el error que pueden observar en la segunda imagen.

Para evitar hacer un CD a la ruta del proyecto, simplemente se puede poner entre comillas dobles la ruta completa a refind.exe pero, mi duda es la siguiente ¿cómo indico la ruta del proyecto? (para no tener que estar copiando el ejecutable dentro de cada proyecto)
__________________
Sean los orientales tan ilustrados como valientes.

Última edición por strelok fecha: 07-05-2021 a las 14:45:53.
Responder Con Cita
  #4  
Antiguo 07-05-2021
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Hola!

La función de refind.exe reemplaza texto con las reglas que le estableces y tus .dfm sin convertir, aunque se pueden tratar como archivos de texto, en realidad tienen cierto formato especifico que requiere Delphi. Así que modificarlos manualmente o con una herramienta externa puede afectarlos.

Entonces, se hace necesario que los conviertas a texto. Para ello puedes usar la herramienta convert.exe que se encuentra dentro de la carpeta bin en la instalación de Delphi (Incluido en Delphi 5).

No encontré documentación de esa herramienta en la web de embarcadero, encontré este link que puede servirte de ayuda.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com

Última edición por movorack fecha: 07-05-2021 a las 15:12:58.
Responder Con Cita
  #5  
Antiguo 09-05-2021
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 14
engranaje Va por buen camino
Si todos los dfm están en modo texto y al pasar refind como veo no has tenido ningún error p,odrías comprobar si el error al intentar abrir los dfm con delphi te pasa con todos los dfm que has cambiado o solo con unos pocos. Incluso abrirlo para comprobar si ves en ellos algo "raro".

Me temo que he estado intentando buscar algo de documentación al respecto para pegar un enlace pero con poca fortuna, pero la longitud de las líneas en modo texto de los .dfm en delphi 5 tien una longitud máxima, esa longitud cambió en los posteriores delphi y recuerdo que un error similar se producía si lanzabas el convert.exe que venía con delphi 7 contra algunos .dfm binarios de delphi 5. Cuando revisabas el los formularios que fallaban si no recuero mal, el problema eran siempre líneas demasiado largas para delphi 5.0. Podrías comprobar eso.
Responder Con Cita
  #6  
Antiguo 10-05-2021
strelok strelok is offline
Miembro
 
Registrado: sep 2017
Posts: 181
Poder: 7
strelok Va por buen camino
Entonces, ¿la idea sería usar convert.exe (supongo que ya viene con delphi 5, o no?) para convertir todos los .DFM en .TXT, luego aplicar refind.exe sobre esos .TXT y, por último, convertir los .TXT modificados nuevamente en .DFM con convert.exe?
__________________
Sean los orientales tan ilustrados como valientes.
Responder Con Cita
  #7  
Antiguo 10-05-2021
strelok strelok is offline
Miembro
 
Registrado: sep 2017
Posts: 181
Poder: 7
strelok Va por buen camino
Cita:
Empezado por engranaje Ver Mensaje
Si todos los dfm están en modo texto y al pasar refind como veo no has tenido ningún error p,odrías comprobar si el error al intentar abrir los dfm con delphi te pasa con todos los dfm que has cambiado o solo con unos pocos. Incluso abrirlo para comprobar si ves en ellos algo "raro".

Me temo que he estado intentando buscar algo de documentación al respecto para pegar un enlace pero con poca fortuna, pero la longitud de las líneas en modo texto de los .dfm en delphi 5 tien una longitud máxima, esa longitud cambió en los posteriores delphi y recuerdo que un error similar se producía si lanzabas el convert.exe que venía con delphi 7 contra algunos .dfm binarios de delphi 5. Cuando revisabas el los formularios que fallaban si no recuero mal, el problema eran siempre líneas demasiado largas para delphi 5.0. Podrías comprobar eso.

¿Por qué lanzabas convert.exe que venía con delphi 7 en ficheros de delphi 5? (por lo que veo, convert.exe viene con delphi 5 ¿por qué no usar ese?)
__________________
Sean los orientales tan ilustrados como valientes.
Responder Con Cita
  #8  
Antiguo 10-05-2021
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 14
engranaje Va por buen camino
Wink

Cita:
Empezado por strelok Ver Mensaje
¿Por qué lanzabas convert.exe que venía con delphi 7 en ficheros de delphi 5? (por lo que veo, convert.exe viene con delphi 5 ¿por qué no usar ese?)

Por error . Varias versiones de Delphi distintas instaladas en el mismo equipo y yo metiendo pata. De hecho .dfm en binarios en delphi 5.0 casi siempre era/es por error, procuro tenerlos siempre como texto. Lo de usar convert venía de los tiempos de delphi 2.0 cuando no tenía más remedio.


El motivo por el que comenté esto era más por el hecho de que a veces utilizar herramientas de una versión posterior para modificar .dfm puede causar que al intentar abrirlo salten ese tipo de errores.


Cita:
No entiendo para qué sirve ese programa ¿no basta con ejecutarlo por línea de comandos? algo como: convert.exe *.DFM y luego hacer la inversa?

Realmente convert sirve para pasar .dfm de formato binario a texto y a la inversa. Hacer lo que comentas en principio debería dejar el .dfm tal y como estaba. Ahora que en principio si el .dfm estuviera en modo texto con errores y le pasaras el convert.exe para convertirlo en binario deberías obtener un mensaje de error.
Responder Con Cita
  #9  
Antiguo 10-05-2021
strelok strelok is offline
Miembro
 
Registrado: sep 2017
Posts: 181
Poder: 7
strelok Va por buen camino
Cita:
Empezado por movorack Ver Mensaje
Hola!

La función de refind.exe reemplaza texto con las reglas que le estableces y tus .dfm sin convertir, aunque se pueden tratar como archivos de texto, en realidad tienen cierto formato especifico que requiere Delphi. Así que modificarlos manualmente o con una herramienta externa puede afectarlos.

Entonces, se hace necesario que los conviertas a texto. Para ello puedes usar la herramienta convert.exe que se encuentra dentro de la carpeta bin en la instalación de Delphi (Incluido en Delphi 5).

No encontré documentación de esa herramienta en la web de embarcadero, encontré este link que puede servirte de ayuda.
No entiendo para qué sirve ese programa ¿no basta con ejecutarlo por línea de comandos? algo como: convert.exe *.DFM y luego hacer la inversa?
__________________
Sean los orientales tan ilustrados como valientes.
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
Cambio de dbgrid a otro macrossman Varios 3 22-03-2011 01:40:36
Cambio de foco a otro edit odrack Varios 30 14-03-2008 19:27:02
Como Automatizar mi backup de datos enecumene OOP 9 30-10-2007 16:14:38
¿Como hacer foco a otro componente de un TPageControl? burasu Varios 4 30-06-2004 17:04:43
Componentes Visuales, como propiedad de otro Componente ingacg OOP 5 01-07-2003 23:10:39


La franja horaria es GMT +2. Ahora son las 23:12:06.


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