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 05-09-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
abrir archivos con OpenDialog y ShellExecute

hola amigos he regresado y en forma de galletitas....(pequeño chiste) bien veran lo que yo quiero hacer es abrir desde delphi cualquier archivo, sea jpeg,pdf,word,excel,powertpoint, aunque se abra en su aplicacion origen, un ejemplo es digamos que tienen varios archivos en su escritorio, word,excel,pdf,etc.. si ustedes le dan un click al archivo se abre en el programa al cual corresponde la extencion, bien, pues yo quiero hacer lo mismo pero desde delphi,pero utilizando un opendialog y alguna funcion que los abriera, buscando en los foros escuche hablar de shellexecute y pues aparentemente creo que si me funciona solo que hay un problema tengo este codigo
Código Delphi [-]
 
procedure TForm1.Button2Click(Sender: TObject);
begin
ShellExecute(GetActiveWindow(),'open', 'c:\b.pdf' , nil,nil,W_SHOWNORMAL);
end;

bien eso lo que hace es que me abre un archivo que tengo en C: que se llama ''b'' y es pdf. y me lo abre bien, hasta ahi todo bien, la cosa es que cuando yo le agrego el open.dialog pues no me sale, mi codigo es asi:
Código Delphi [-]

procedure TForm1.Button2Click(Sender: TObject);
begin
if OpenDialog.Execute then
begin
ShellExecute(GetActiveWindow(),'open','opendialog.Files.Text', nil,nil, SW_SHOWNORMAL);
end;
end;
pero con esas lineas no me abre nada,es decir, si se despliega el opendialog y selecciono el mismo archivo que quiero abrir (b.pdf) pero no lo abre,no se que estoy haciendo mal segun yo deberia de funcionar con el codigo que puse pero no hace nada, o tal ves no es la forma indicada, lo que yo quiero es abrir cualquier archivo pero por medio de un open.dialog, si alguien me hecha una manita pues con mucho gusto se los agradecere, se que es un detallito el que falta creo o si alguien tiene una mejor solucion adelante Gracias !!
__________________
En movimiento...

Última edición por thelibmx fecha: 05-09-2007 a las 02:55:00.
Responder Con Cita
  #2  
Antiguo 05-09-2007
Rudi Rudi is offline
Miembro
 
Registrado: jul 2003
Ubicación: Venezuela
Posts: 78
Poder: 21
Rudi Va por buen camino
Añade 'ShellApi' en el uses de tu form

y la Funcion ShellExecute segun la he usado lleva esta forma

ShellExecute(Form1.Handle,nil,PChar(OpenDialog1.FileName),'','',SW_SHOWNORMAL);

Form1 lo cambias por el nombre de tu Form

comprobe lo que scribiste y asi funciona:

ShellExecute(GetActiveWindow(),'open',PChar(OpenDialog1.FileName), nil,nil, SW_SHOWNORMAL);


espero te sirva.
Responder Con Cita
  #3  
Antiguo 05-09-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
Thumbs up

Muy bien, Gracias Rudi, Quedo como queria...
__________________
En movimiento...
Responder Con Cita
  #4  
Antiguo 06-09-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
Question ventana dentro de un panel en un formulario de delphi

oye otra pregunta espero me puedas ayudar o si alguien mas conoce la respuesta pues se la agradeceria mucho.

Como le podria hacer para que el archivo que abri con esa instruccion apareciera en un panel o algo similar dentro de un formulario de delphi y no me permitiera agrandar mas o pasar de cierto tamaño, digamos que como un tipo frame que solo ocupe la mitad de la pantalla?, espero explicarme bien..

ocupo delphi2006
__________________
En movimiento...
Responder Con Cita
  #5  
Antiguo 06-09-2007
Avatar de paldave
paldave paldave is offline
Miembro
 
Registrado: ago 2007
Ubicación: Uruguay
Posts: 148
Poder: 17
paldave Va por buen camino
Una cosa que puedes hacer es insertar un TOleContainer en tu formulario, con el tamaño que necesitas y luego cargar el archivo allí de la siguiente forma:
Código Delphi [-]
olecontainer1.CreateObjectFromFile('C:\midocumento.doc',false);
Esto te funcionará para todos los documentos cuyo programa asociado soporte OLE.
Saludos.
Responder Con Cita
  #6  
Antiguo 06-09-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
Thumbs up

woow, que bonito componente, exacto esta muy bien, era mas o menos lo que queria bien, solo tengo dos problemillas (de hecho tengo muchos jaja) pero ahora me interesan dos, probando esa funcion tengo dos cosillas, la primera cuando abres un documento de word o excel hay veces que si se despliega bien en el container y hay veces qe no, si tu das dos click en el container como que se abre la aplicacion y me cambia los menus de mi forma me sustituye los que tenia , y si la cierro se cierra toda la forma, hay manera de cambiar eso o controlarlo a que se despliegue solamente dentro del olecontainer o que simplemente se vea la informacion sin los menus o pues que regrese a su estado original, la otra cuestion es si tiene alguna propiedad para que sea de solo lectura y no se pueda modificar nada.. de los contenidos del olecontainer...

de antemano muchas gracias...
con lo que me has dicho me sirvio de gran ayuda
__________________
En movimiento...
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
abrir de Archivos as400? Ryu Conexión con bases de datos 1 19-11-2005 00:44:31
Abrir archivos pdf luxus OOP 1 22-10-2005 23:37:24
Opendialog abrir aplicacion!!! liz_hilton OOP 2 10-05-2005 17:41:32
abrir .htm en una nueva ventana con shellexecute ruina API de Windows 5 24-06-2004 19:47:54


La franja horaria es GMT +2. Ahora son las 13:21:08.


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