Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Ayuda para abrir un tipo de archivo (https://www.clubdelphi.com/foros/showthread.php?t=87231)

RaulSaez 02-12-2014 15:03:33

Ayuda para abrir un tipo de archivo
 
Chicos necesito de ayuda para lo siguiente:
He creado una aplicacion que guarda sus datos en un archivo *. par (la extencion que escoji) en la realidad no es mas que un fichero ANSII pero eso no es nada interesante. Quisiera que al darle doble click a un fichero de esta extencion, me abra mi aplicacio... (Eso quizas es poninedolo en el registro bla, bla bla) pero lo dificil en realidad me es que mi aplicacion abra con los datos que habia en este fichero...
Para facilitar el entendimiento un ejemplo practico:
Tengo un programa que lee un numero desde un txt con extencion *.xxx y lo que hace es cambiar su color de fondo igual a este numero... ahora eso para cuando yo escojo la opcion en mi programa: Archivo/Abrir
Pero quiero que eso pase tambien si le doy doble clic al fichero(Sin tener mi aplicacion habierta inicialmente)....

Creo que he sido bastante explicito.... agradecer'e cualquier comentario o sujerencia...

ecfisa 02-12-2014 15:52:25

Hola RaulSaez, bienvenido a Club Delphi :)

Como se acostumbra con los que comienzan te invitamos a leer nuestra guía de estilo.

Revisa este enlace: Associate an application with a file extension

Saludos :)

RaulSaez 02-12-2014 16:30:00

Agradesco tu comentario pero....
 
Sucede que eso ya lo sabía... el codigo le dice a Window con que programa se ejecuta ese tipo de archivo.... el problema es que cuando das dobleclick en un fichero en efecto mi aplicacion abre pero... abre tal y como cuando yo doy RUN en el delphi!!! la aplicacion no sabe que fichero fue el que la invocó .... quizas haya que pasarle algun parametro a la aplicacion o algo ni idea.... gracias por todo

Neftali [Germán.Estévez] 02-12-2014 16:48:08

Cita:

Empezado por RaulSaez (Mensaje 485972)
la aplicacion no sabe que fichero fue el que la invocó .... quizas haya que pasarle algun parametro a la aplicacion o algo ni idea.... gracias por todo

Busca información sobre ParamStr y ParamCount.

En ParamStr(0) está el nombre de la aplicación
En ParamStr(1) el primer parámetro => Tu nombre de fichero.

duilioisola 02-12-2014 16:52:16

Cuando se llama a tu programa normalmente se lo llama
Código:

]Aplicacion.exe Fichero.PAR
Busca información sobre ParamCount y ParamStr(i)
Yo lo utilizo así:

Código Delphi [-]
var
  i: Integer;
begin
  // Tratamiento de parámetros de la aplicacion
  // - App.exe /nologo : no muestra el logo al cargar la aplicación
  // - App.exe /nobackground : oculta el fondo al iniciar la aplicación
  MostrarLogo := True;
  MostrarFondo := True;
  for i := 1 to ParamCount do
  begin
    if LowerCase(ParamStr(i)) = '/nologo' then
      MostrarLogo := False;
    if LowerCase(ParamStr(i)) = '/nobackground' then
      MostrarFondo := False;
  end;

  if (MostrarLogo) then
  ...

duilioisola 02-12-2014 16:53:17

Te me adelantaste Neftali!

RaulSaez 02-12-2014 17:02:25

Ok... estoy en ello...
 
Pero bueno... supongo que este tratamiento a los parametros debe estar en el FormActive o FormCreate ?no?.... Gracias estoy probando!!!!

Neftali [Germán.Estévez] 02-12-2014 17:16:23

Puedes hacerlo en el fichero DPR o en el FormCreate/FormShow del principal.
Donde lo necesites dependiendo de lo que quieras hacer.

ecfisa 02-12-2014 17:19:46

Hola RaulSaez.

No había interpretado bién la pregunta inicial pero sí, como te comentaron, en ParamStr vas a encontrar la ruta mas el nombre de archivo.

Saludos :)

RaulSaez 02-12-2014 17:32:12

Fin del problema!!!!
 
Amigos gracias... la respuesta fue tal y como me sujirieron una vez asociada la extención bastó con chequear el ParamStr(1) que contenía el nombre del fichero que hizo la llamada y en el OnCreate del formulario lo puse y funcionó a la perfección....
Saben tenía esta duda desde un programa que hice en Delphi 3 en el 2006 de locos!!! Gracias a toda la comunidad!


La franja horaria es GMT +2. Ahora son las 03:57:41.

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