 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Invitado
|
Publicado: Mie 28 Jul, 2004 1:25 pm Asunto: Problemas al abrir un archivo creado por mi aplicación |
|
|
Hola,
Estoy haciendo el instalador de mi aplicación utilizando inno setup. Necesito registrar la extensión de los archivos que genera mi aplicación, lo cual hago desde el instalador (al menos lo intento). Para ello pongo el siguiente código en el instalador:
| Código: |
[Registry]
Root: HKCR; Subkey: ".myp"; ValueType: string; ValueName: ""; ValueData: "MiArchivo"; Flags: uninsdeletevalue
Root: HKCR; Subkey: "MiArchivo"; ValueType: string; ValueName: ""; ValueData: "Mi archivo"; Flags: uninsdeletekey
Root: HKCR; Subkey: "MiArchivo\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\MiPrograma.EXE,0"
Root: HKCR; Subkey: "MiArchivo\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\MiPrograma.EXE"" ""%1"""
|
Bien, la extensión sí la registra, le asocia el icono correcto, peeeero: al hacer doble click sobre un archivo .myp en el explorador de windows se abre mi aplicación, pero solo la ventana padre, no se abre ninguna ventana hija, con lo cual no se ve la info del registro, ya que ésta aparece toda en la ventana hija, ¿me podeis ayudar?
Gracias! |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Sab 31 Jul, 2004 11:38 am Asunto: |
|
|
Ese es el comportamiento normal. Cuando tu programa se ejecuta así es exactamente lo mismo que cuando lo ejecutas pasándole algún argumento. En este caso el argumento es el nombre del archivo sobre el que pulsaste y lo recibes en:
String miArchivo = _argv[1];
o bien en:
String miArchivo = ParamStr(1);
Ya teniendo esto en cuenta, eres tú quien debe actuar en consecuencia, abriendo un form secundario o lo que necesites. |
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Lun 02 Ago, 2004 11:31 am Asunto: |
|
|
Muchas gracias _Leo, ya había conseguido que funcionara, tal y como dices. Ahora ya lo logro que se abra la ventana hija al hacer doble click sobre un archivo asociado. Pero tengo otro problema que me trae de cabeza. A ver si me explico bien:
Tengo que hacer mi palicación en varios idiomas. Para ello estoy metiendo todos los textos en ficheros .INI: idiomaes.INI, idiomaen.INI (son los que tengo de momento).
En el evento OnCreate de cada ventana abro el fichero y leo las etiquetas correspondientes:
TIniFile *Ini=new TIniFile (".\\idioma.ini");
En el instalador (inno setup), guardo como idioma.ini el fichero que corresponda según el usuario utilice inglés o castellano para la instalación:
[Languages]
Name: en; MessagesFile: "compiler:Default.isl"
Name: es; MessagesFile: "compiler:Languages\Spanish.isl"
[Messages]
en.BeveledLabel=English
es.BeveledLabel=Español
[FILES]:
...
Source: "idiomaen.ini"; DestName: "idioma.ini"; DestDir: "{app}"; Languages: en
Source: "idiomaes.ini"; DestName: "idioma.ini"; DestDir: "{app}"; Languages: es
Esto funciona perfectamente si abro la aplicación, pero si quiero abrir un archivo asociado, no aparecen los textos de las ventanas, como si no encontrara el archivo idioma.ini
¡¡Ayuda!!
Muchas gracias! |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 02 Ago, 2004 11:42 am Asunto: |
|
|
Para que busque el .ini en el directorio donde esta nuestra aplicación y no donde esta el archivo que intentamos abrir, prueba con lo siguiente:
| Código: | String AppPath = ExtractFilePath(Application->ExeName);
TIniFile* Ini = new TIniFile (AppPath + "idioma.ini"); |
|
|
| Volver arriba |
|
 |
Invitado
|
Publicado: Lun 02 Ago, 2004 12:17 pm Asunto: |
|
|
| Parece que últimamente te leo el pensamiento, jaja. Entré para deciros que ya lo había solucionado y ¡zas!, leo tu respuesta. Y efectivamenete el problema estaba ahí. Gracias de todas formas!! |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|