FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Cita:
¿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. |
#2
|
|||
|
|||
Cita:
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:
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. |
#3
|
|||
|
|||
Ayer lo estuve probando y parece ser que funciona a la perfección, no obstante, no los vuelvo a convertir a binarios. Es decir, los convierto a texto y luego aplico el refind.exe.
Miren el lio que me estoy montando: Estoy creando un script de PHP que genere un fichero .BAT en base a unas configuraciones (que N componentes hay que reemplazar y por cuáles, qué propiedades, directorio del proyecto, etc). Una vez generado el fichero .BAT, el script PHP lo ejecutará. El fichero bat lo que hace es copiar convert.exe y refind.exe al directorio del proyecto, genera las expresiones regulares (para refind) y ejecuta ambos. Puede que sea un lio, pero veo que se puede automatizar casi todo por esta vía.
__________________
Sean los orientales tan ilustrados como valientes. |
#4
|
|||
|
|||
Aquí va la pregunta del millón:
¿Cómo puedo crea una expresión regular para refind.exe, de tal forma que le diga para reemplazar una propiedad, si sólo sí, esa propiedad forma parte de un componente? De momento tengo esto: refind.exe *.dfm *.pas /W /Y /B:0 /P:"Propiedad='valor'" /R:"Propiedad = valor" refind.exe *.dfm *.pas /W /Y /B:0 /P:ComponteAReemplazar /R:ComponenteNuevo El problema es que, muchos componentes pueden tener la propiedad del primer comando y lo que interesa es cambiar en el componente a reemplazar y no en todos. Agradecería ayuda con esto
__________________
Sean los orientales tan ilustrados como valientes. |
#5
|
|||
|
|||
No tengo experiencia al respecto, siento no serte de ayuda, ya digo para eso uso Gexperts: http://www.gexperts.org/tour/index.h...omponents.html.
En delphi 5 también uso cnpack que tiene herramientas como el "Open High Version Forms Tool" : Cita:
|
#6
|
||||
|
||||
Hola, Strelok.
Por algunas de las respuestas que haz dado he dado por sentado que estás empezando, pero también llego a sentir algo de frustración por la poca diligencia que haz mostrado y me refiero mas que todo a la profundización del tema sea con la solución que he planteado o alguna otra. - El convert.exe, como ya haz podido corroborar, cambia el contenido del .dfm de binario a texto y viceversa. - No veo necesario copiar los ejecutables. Para eso puedes pasar rutas completas. Ej: Código:
"C:\Program Files (x86)\Embarcadero\Studio\19.0\bin\refind.exe" /S /Y /I /Q /B:2 "C:\Users\movorack\Documents\Embarcadero\Studio\Projects\Prueba1\*.dfm" /X:"C:\Users\movorack\Documents\Embarcadero\Studio\Projects\Prueba1\refind_Rules.txt" Cita:
En el archivo de ejemplo para migrar de BDE a Firedac, colocan entre otros ejemplos estos: Código:
#migrate TTable:ReadOnly -> UpdateOptions.ReadOnly #migrate TDatabase:Execute -> ExecSQL Entonces, si lo que requieres es modificar el nombre de la propiedad porque en el nuevo componente tiene otro nombre, esta es la opción. Pero, si lo que buscas es modificar el valor de una propiedad, La cosa se complica un poco. Aunque no es nada que no puedas manejar. Para este ejemplo, he añadido a un nuevo proyecto varios componentes que tengan la propiedad "Caption", pero solo requiero modificar el valor de Caption para el o los componentes TLabel Ejemplo del DFM: Código:
object Form1: TForm1 Caption = 'Form1' object Label1: TLabel Caption = 'Label1' end object Button1: TButton Caption = 'Button1' end object RadioButton1: TRadioButton Caption = 'RadioButton1' end end Código:
#migrate TLabel:Caption -> Caption = 'Mi nuevo caption'__REMOVE: \'__REMOVE:\s*\=\s*\'.*\' -> ' En la primera regla, se cambia la propiedad "Caption" por "Caption = 'Mi nuevo caption'__REMOVE", añadiendo tanto el nuevo valor como la marca "__REMOVE" para ser usada en la segunda regla Si solo ejecutara el refind con esa primera regla obtendría en el dfm el siguiente resultado Código:
object Form1: TForm1 Caption = 'Form1' object Label1: TLabel Caption = 'Mi nuevo caption'__REMOVE: = 'Label1' end object Button1: TButton Caption = 'Button1' end object RadioButton1: TRadioButton Caption = 'RadioButton1' end end La segunda regla se encarga de borrar desde la marca "__REMOVE" hasta el final de la línea y así obtenemos Código:
object Form1: TForm1 Caption = 'Form1' object Label1: TLabel Caption = 'Mi nuevo caption' end object Button1: TButton Caption = 'Button1' end object RadioButton1: TRadioButton Caption = 'RadioButton1' end end
__________________
Buena caza y buen remar... http://mivaler.blogspot.com |
#7
|
|||
|
|||
Sí, se podría decir que recién estoy empezando, aunque tuve una experiencia en Delphi, fue muy corta y hace ya algunos años.
No indagué mucho, y la verdad es que, la solución que aportas para eliminar el valor de una propiedad, puede que nunca se hubiese ocurrido. Muchas gracias por tu aporte
__________________
Sean los orientales tan ilustrados como valientes. |
|
|
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 |
|