Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 02-04-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
jplj,

Cita:
Empezado por jplj
...Volver a mostrar una ventana abierta con ShellExecute..."traer al frente" el documento abierto, y no tener que "abrir" una nueva copia...En principio cualquier tipo de archivo que suela ser empleado para almacenar información...
Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ShellAPI, ComCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
   FileName : Array[0..3] of String = ('Nelson.txt', 'Nelson.xlsx', 'Nelson.pdf', 'Nelson.jpg');
   FilePrg : Array[0..3] of String = (' - NotePad',
                                      ' - Microsoft Excel',
                                      ' - Adobe Reader',
                                      ' - Windows Photo Viewer');

var
   Form1: TForm1;

implementation

{$R *.dfm}

// Inicializa un TListBox con archivos de Windows
procedure TForm1.FormCreate(Sender: TObject);
var
   i : Integer;
begin
   for i  := Low(FileName) to High(FileName) do
      ListBox1.Items.Add(FileName[i]);
end;

// Abre una sola ventana de un archivo con su aplicación por default en Windows
procedure TForm1.Button1Click(Sender: TObject);
var
  WindowHandle : THandle;
  WindowName : String;

begin

  WindowName := FileName[ListBox1.ItemIndex] + FilePrg[ListBox1.ItemIndex];

  WindowHandle := FindWindow(nil,PChar(WindowName));

  if SetForegroundWindow(WindowHandle) then
     ShowWindow(WindowHandle, SW_SHOWNORMAL)
  else
     ShellExecute(0, nil, PChar(FileName[ListBox1.ItemIndex]),'', '',SW_SHOWNORMAL);

end;

end.
El código anterior en Delphi 7 bajo Windows 7 Professional x32, permite abrir los archivos contenidos en el TListBox con su aplicación por default en Windows por medio de ShellExecute y en caso de ser seleccionados nuevamente colocar la ventana de la aplicación en el tope del Z-Order (Si esta activa) o abrirla nuevamente si esta fue previamente cerrada, en resumen: Se abre una sola ventana por archivo seleccionado.

Nota: Es fundamental que se coloque el nombre correcto de la aplicación (Como aparece en la ventana de la misma), en el formato: " - ApplicationName", si lo anterior no es correcto la aplicación se abrirá tantas veces como sea llamada.

Revisa esta información:
Espero sea útil

Nelson.
Responder Con Cita
 



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
Volver a Mostrar los registros de un Dbgrid despues de haber echo una consulta verde_esmeralda PHP 0 20-05-2011 19:03:38
TThread y cerrar una ventana previamente abierta gluglu OOP 1 14-05-2007 19:19:54
Enviar texto a la ventana abierta Mr.Vaka Varios 4 28-11-2005 18:57:31
Volver a mostrar un formulario creado dinámicamente. jplj Varios 2 10-02-2005 13:19:27
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 14:18:32.


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
Copyright 1996-2007 Club Delphi